[過去ログ] 【まず1嫁】くだすれPython(超初心者用) その53 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
437(1): デフォルトの名無しさん [] 2021/04/24(土) 21:25:16.04 ID:7lpOLCJL(1) AAS
ファイルパスを受け取って画像かどうかを返す、シンプルな関数を作りたい
偽装(mimetypes)とか誤認(imghdr)とか避けたい
import pathlib
import filetype
path = pathlib.Path(xxx)
if path.is_file():
__is_img(path)
#
def is_img(path):
__answer = False
__obj = filetype.guess(str(path))
__if obj is not None:
____if obj.mime[:6] == "image/":
______answer = True
__returen answer
いまこんな感じなんですが、これで大丈夫だと思いますか?
一応手元で偽装ファイルとか色々投げて、問題ないっぽい雰囲気ではあるのですが…
また、もっと簡単な方法があれば教えてください
440: デフォルトの名無しさん [sage] 2021/04/25(日) 00:57:11.71 ID:VZsvyaQ9(1) AAS
>>437
filetypeはjpg/png/gifの場合最初の2〜3バイトしか読まないので
https://github.com/h2non/filetype.py/blob/53bdccee0371fcc9463e2edd68d2cedb589d3a76/filetype/types/image.py#L23
その先頭2〜3バイトが偽装されていれば誤認する
そういうのが嫌なら439のように画像としてロードできるかまで確認すべきだ
ただし、437が想定するファイルを「偽装」してくるアタッカーがどういう人物像なのか不明なので
一概にどちらにすべきとは言えない
偽装ファイルでexploitを突こうと画策されているのでもなければfiletypeで十分だろう
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.403s*