我的网站上有一个表单,用户可以在TXT上传文件。这些文件总是PHP文件,我请求用户更改扩展名,这样对服务器(运行APACHE + PHP)没有任何损害。
该文件必须上传到www目录,因为稍后他们可以在必要时下载该文件。我无法将文件保存在根目录(上面的public_html)中,因为用户必须有权随时下载文件。问题是,当用户打开包含PHP文件的URL时,它将被执行,这将在安全性中造成很大的漏洞。
到目前为止,我要求用户将文件上传为txt,但我想让它更专业,并允许他们将其上传为* .php。如何防止上传文件的人受到安全故障的攻击?损坏我的服务器?
谢谢。
答案 0 :(得分:1)
我建议您将它们上传为.phps文件,当您通常查看它们时,它们将是语法突出显示的PHP文件,并且不会被执行。
如果PHPS文件自然无法在您的网络服务器上运行,您可以尝试:https://kb.mediatemple.net/questions/1655/How+do+I+enable+.phps+file+to+be+color+highlighted%3F
禁用PHP
或者,您可以将它们上传到另一个目录,并通过在该目录的.htaccess文件中设置以下内容来禁用带有.htaccess的PHP。
php_flag engine off
答案 1 :(得分:0)
让他们以PHP格式上传,然后将临时上传的文件移动到永久的家中,使其名称类似于myfile.php.source。在下载页面上,不要只链接到文件,以可以强制下载的方式流式传输,而不是在浏览器中加载页面,您可以控制在标题中传递的方式,例如:
header(“Content-Disposition:attachment; filename = \”$ file \“”);
希望有所帮助
答案 2 :(得分:0)
创建一个文件夹并设置php以在那里上传所有脚本文件。
将文件夹权限设置为744。
这可以防止该文件夹中的任何文件被执行。