简而言之,我有一个网页,允许人们将文件上传到我的网站,然后显示指向他们上传的任何内容的链接。
上传允许上传任何文件类型,并将其存储在名为"uploads"的公共文件夹中。
我可以预见到这会带来很多安全风险。例如,如果用户上传一个 HTML 文件,它在打开时会呈现为网页 - 他们可能会重定向到其中的病毒等。
我希望网站尽可能开放 - 我喜欢上传者允许用户向我的网站添加网页的事实。但是,我需要它对用户(和我)来说是安全可靠的。
如何使网站尽可能开放(允许用户尽可能自由),而不会容易受到黑客的攻击?
您需要考虑多件事,请选择适合您的软件需求的:
- 不允许那些可执行文件,如html,php,cgi
- 如果您允许上传这些文件,则在该目录中停止任何脚本执行(这将通过.htaccess完成)如果您希望允许html,请停止任何服务器端脚本,如PHP。
- 而不是提供指向这些文件的直接链接。通过服务器发送文件,就像从 PHP 标头处置一样。通过这种方式,文件将作为下载发送,攻击者将没有直接链接到该文件,因此他无法执行它。