我正在尝试决定如何在我的烧瓶应用上实现图片上传功能。我目前正在使用Flask-Uploads来完成工作,它看起来效果很好。但是,我不知道它是否非常安全,这可能是一个巨大的问题,因为涉及文件上传。 Flask-Uploads并没有真正提供有关其服务实施的详细信息,因此我没有通过查看文档获得任何见解。但是,我在Flask的官方文档中看到它们包含了一个使用Werkzeug的文件上传示例,它似乎有一些额外的方法用于文件安全性。我似乎无法在网上找到任何一个更安全的信息。有没有人在这里有更多的网络安全经验曾经检查过这些替代方案中的一个或两个,并在这个问题上得出明确的结论?
答案 0 :(得分:7)
Flask-Uploads实际上是使用在Flask's documentation for file upload handling中找到的模式。它使用werkzeug.secure_filename
,如果您出于某种原因使用Flask 0.5或更早版本,它提供了一种设置MAX_CONTENT_LENGTH
的方法,它提供了一种根据文件扩展名验证文件的方法。
事实上,Flask的文档实际上是explicitly suggests using Flask-Uploads:
由于文件上传的常见模式在处理上传的所有应用程序中几乎没有变化,因此有一个名为Flask-Uploads的Flask扩展实现了一个完整的上传机制,包括白名单和黑名单扩展等等。