嘿伙计们,我已经搜索了一下,并没有真正找到专业类型的响应如何获得安全的文件上传能力,所以我想得到一些专家在这个网站上的意见.我目前允许上传mp3和图像,虽然我对防止我的网站上的xss和注入攻击非常有信心,但我并不熟悉fileupload安全性.我基本上只使用php fileinfo并检查文件类型的接受文件类型数组.对于图像,有getimagesize功能和一些额外的检查.至于存储它们,我只在我的目录中有一个文件夹,因为我希望用户能够使用这些文件.如果有人能给我一些提示,我会非常感激.
我通常在接受可共享的文件时调用ClamAV.使用PHP,这很容易用php-clamav完成.
您要做的最后一件事是在全球传播恶意软件:)
如果可以,请在上传文件后在后台执行此操作,但在将其公开之前.本A类怪癖是,它可以加载整个 ClamAV的病毒定义数据库到内存中,这将几乎肯定如果PHP Apache下运行传统臭(想想+ 120 MB的每个实例存储的顺序).
使用像beanstalkd这样的东西来扫描上传,然后更新你的数据库以使它们公开是解决这个问题的一个非常好的方法.
我之所以提到这一点,只是因为其他答案没有,我绝不打算将其作为一个完整的解决方案.看到这里发布的其他答案,这是你应该完成的一个步骤.始终,始终,始终清理您的输入,确保它是预期类型等(我是否提到您应该阅读其他答案?)