使用 Django 构建安全的文件管理器应用程序
Building a secure file-manager app with Django
我正在开发一个将成为 public 网站的项目,它需要从用户那里获取媒体文件(数字图像、音频和视频)并保存它们,我不希望用户将恶意文件上传到我的服务器(我目前正在使用 SFTP 服务器进行存储)。所以我正在寻找一种解决方案来检查文件格式并允许上传 "safe and intact" 媒体文件。
是否有任何 python 包来检查文件的某些字节并说 "this is a valid jpg" 或 "mp3" 等?你能为我的问题推荐任何其他解决方案(保护我的文件管理器应用程序)吗?
我觉得你可以用python-magic,这里是用jpg扩展名的pdf文件猜测原始jpg文件的例子
def file_path_mime(file_path):
mime = magic.from_file(file_path, mime=True)
return mime
def check_in_memory_mime(in_memory_file):
mime = magic.from_buffer(in_memory_file.read(), mime=True)
return mime
file_path_mime('/path/to/sneaky_pdf_file.jpg')
>> 'application/pdf'
file_path_mime('path/to/a_file.jpg'):
>> 'image/jpg'
您可以通过输入命令 pip install python-magic
来安装它
我正在开发一个将成为 public 网站的项目,它需要从用户那里获取媒体文件(数字图像、音频和视频)并保存它们,我不希望用户将恶意文件上传到我的服务器(我目前正在使用 SFTP 服务器进行存储)。所以我正在寻找一种解决方案来检查文件格式并允许上传 "safe and intact" 媒体文件。
是否有任何 python 包来检查文件的某些字节并说 "this is a valid jpg" 或 "mp3" 等?你能为我的问题推荐任何其他解决方案(保护我的文件管理器应用程序)吗?
我觉得你可以用python-magic,这里是用jpg扩展名的pdf文件猜测原始jpg文件的例子
def file_path_mime(file_path):
mime = magic.from_file(file_path, mime=True)
return mime
def check_in_memory_mime(in_memory_file):
mime = magic.from_buffer(in_memory_file.read(), mime=True)
return mime
file_path_mime('/path/to/sneaky_pdf_file.jpg')
>> 'application/pdf'
file_path_mime('path/to/a_file.jpg'):
>> 'image/jpg'
您可以通过输入命令 pip install python-magic
来安装它