显示文件的PHP源代码


Display source of PHP of files

我正在编写上传脚本,我希望用户能够上传任何文件。我让它在本地主机上工作,我添加了

    php_flag engine off 
    AddType text/plain php html shtml php5 php4 php3 cgi asp aspx xml

上传文件夹中的htaccess,它显示了PHP、html和所有其他文件的来源。正是我想要的。现在我试着把它上传到一个真正的网络服务器上,不幸的是我的主机不允许这样的.htaccess文件。

我试着用file_get_content()和fopen()打开这些文件,并给它们一个text/plain头。。但什么都不管用。它首先执行脚本,并在我的文本区域中显示输出。

你们对我如何在没有.htaccess的情况下解决这个问题有什么建议吗?

谢谢!

不要将文件上传到webroot,让人们直接访问它们。正如您所说,php脚本(可能还有更多)都是以这种方式执行的任意代码执行攻击的经典方式

将上传的文件存储在无法公开访问的webroot之外,并创建一个脚本,允许用户在完成必要的权限检查后下载文件,例如使用readfile或Apache mod_xsendfile。

另请参阅上传的安全威胁。