0

我的网站上有一个表单,用户可以在其中上传 TXT 文件。这些文件始终是我要求用户更改扩展名的 PHP 文件,因此不会对服务器(运行 APACHE + PHP)造成损害。

该文件必须上传到 www 目录,因为稍后他们可以在必要时下载该文件。我无法将文件保存在根目录(public_html 之上),因为用户必须有权随时下载文件。问题是,当用户打开包含 PHP 文件的 URL 时,它会被执行,并且会在安全性上造成很大的漏洞。

到目前为止,我要求用户将文件上传为 txt,但我想让它更专业,并允许他们将其上传为 *.php。我怎样才能防止人们上传具有安全性的文件的攻击损坏我的服务器?

谢谢你。

4

3 回答 3

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
于 2013-07-26T17:14:06.887 回答
0

让他们作为 PHP 上传,然后在将临时上传的文件移动到它的永久主页时,使名称类似于 myfile.php.source。在下载页面上,不要只是链接到文件,以这样的方式流式传输它们,您可以强制下载而不是在浏览器中加载页面,并且您可以控制它在标题中的传递方式,例如:

header("内容配置:附件;文件名=\"$file\"");

希望有帮助

于 2013-07-26T17:20:08.927 回答
0

创建一个文件夹并设置 php 以将所有脚本文件上传到那里。

将文件夹权限设置为 744。

这可以防止该文件夹中的任何文件被执行。

于 2013-07-26T17:25:42.520 回答