我使用python中的requests库通过http下载大量图片文件。我在 python 中使用 BytesIO 将接收到的内容转换为原始字节,然后使用 Pillow() 将此原始内容保存为 jpeg 文件。
from PIL import Image
from io import BytesIO
rsp = requests.get(imageurl)
content_type_received = rsp.headers['Content-Type'] # mime type
binarycontent = BytesIO(rsp.content)
if content_type_received.startswith('image'): # image/jpeg, image/png etc
i = Image.open(binarycontent)
outfilename = os.path.join(outfolder,'myimg'+'.jpg')
with open(outfilename, 'wb') as f:
f.write(rsp.content)
rsp.close()
此代码的潜在安全风险是什么?(我不确定我们可以在多大程度上信任服务器说响应标头中的 mime 类型真的是服务器所说的?)有没有更好的方法来编写安全下载例程?