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