如何允许将PHP文件上载到服务器而不执行它们
我想让用户能够上传和下载PHP文件,而无需执行它们, 我需要关闭特定目录的PHP,使其表现为纯文本 我试过了,但这是一个正确的解决方案吗如何允许将PHP文件上载到服务器而不执行它们,php,file-upload,Php,File Upload,我想让用户能够上传和下载PHP文件,而无需执行它们, 我需要关闭特定目录的PHP,使其表现为纯文本 我试过了,但这是一个正确的解决方案吗 RemoveHandler .php .phtml .php3 RemoveType .php .phtml .php3 php_flag engine off 您可以使用代理脚本来处理此问题。 在.htaccess文件中,您可以将文件夹中的所有请求重定向到以下位置: http://example.com/uploads/myfilewithadminacc
RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off
您可以使用代理脚本来处理此问题。
在.htaccess
文件中,您可以将文件夹中的所有请求重定向到以下位置:
http://example.com/uploads/myfilewithadminaccess.php
到
.htaccess的来源
在index.php
中,只需解析文件并给出输出
index.php的源代码:
小提琴:
注意:在允许URL传递之前,您需要清理输入。因此,人们可能会注射。/
,等等。这些都应该小心
希望这对您有所帮助,而且非常好。您也可以将其重命名为.phps
。。。。。。。只是为了省钱什么原因@用户1464822@БаааааСачааааааа107P但由于它是通过.htaccess
访问的,所以不会影响对吗?如何在路径中直接发送。/
?这将产生影响,因为它将公开您可能不想公开的文件。还请注意,您可以使用mod_rewrite将此类脚本对用户透明。@eis这就是我所说的,使用。htaccess
您需要传递参数。啊!!!请仔细阅读答案!:)
http://example.com/uploads/index.php?file=myfilewithadminaccess.php
RewriteEngine On
RewriteRule ^([^/]*)$ ./index.php?file=$1 [L]
<?php
header("Content-type: text/html");
$filename = (file_exists("uploads/" . $_GET["file"])) ? "uploads/" . $_GET["file"] : "error.txt";
$filecont = file_get_contents($filename);
echo htmlspecialchars($filecont);
?>