我正在创建一个非常简单的django上传应用程序,但我想让它尽可能安全。这是应用程序将完全是一种方式,IE。任何上传文件的人都不需要检索它。到目前为止,我已经完成了以下工作:
假设apache和mod_python位于此前端并且apache本身已被保护,是否还有其他“最佳实践”的东西我应该做或考虑保护我的应用程序?
提前致谢。
答案 0 :(得分:5)
禁止文件扩展名 - 可能 - 浪费时间。 unix服务器不使用扩展 - 它使用所有权和权限。
接受上传时,您通常会重命名该文件以防止其被滥用。上传的文件应简单地命名为“upload_xxx”,其中“xxx”是提供声明的名称和数据类型的某些数据库记录的关键。
您必须实际阅读该文件并确认该文件的内容是某人声称的内容。
例如,如果他们声称要上传.JPG,您必须实际读取该文件以确保它是JPEG,而不是.EXE。
答案 1 :(得分:1)
此外,您可能希望将目标文件放在Apache的DocumentRoot目录之外,以便任何URL都无法访问它们。 .htaccess中的规则如果编写得好,则会提供一定程度的保护,但如果您正在寻求最大的安全性,只需将文件放在网络可访问的目录中。