【问题标题】:Building a secure file-manager app with Django [closed]使用 Django 构建安全的文件管理器应用程序 [关闭]
【发布时间】:2019-10-24 14:39:52
【问题描述】:

我正在开发一个将成为公共网站的项目,它需要从用户那里获取媒体文件(数字图像、音频和视频)并保存它们,我不希望用户将恶意文件上传到我的服务器(我目前正在使用 SFTP 服务器进行存储)。因此,我正在寻找一种解决方案来检查文件格式并允许上传“安全且完整”的媒体文件。

是否有任何 python 包来检查文件的某些字节并说“这是一个有效的 jpg”或“mp3”等?您能否为我的问题推荐任何其他解决方案(保护我的文件管理器应用程序)?

【问题讨论】:

    标签: python django file-manager


    【解决方案1】:

    我想你可以使用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 来安装它

    【讨论】:

    • 这很酷。我更改了文件的后缀以测试它是否可以正确识别文件格式并且确实如此。谢谢。
    猜你喜欢
    • 2016-11-10
    • 1970-01-01
    • 2011-05-13
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多