ユーザーが PHP ファイルをアップロードして実行せずにダウンロードできるようにしたいのですが、特定のディレクトリに対して PHP をオフにして、プレーン テキストとして動作するようにする必要があります。
私はこれを試しましたが、それは適切な解決策ですか?
RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off
ユーザーが PHP ファイルをアップロードして実行せずにダウンロードできるようにしたいのですが、特定のディレクトリに対して PHP をオフにして、プレーン テキストとして動作するようにする必要があります。
私はこれを試しましたが、それは適切な解決策ですか?
RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off
.htaccess
ファイルでは、フォルダー内のすべてのリクエストをリダイレクトして、次のように変更できます。
http://example.com/uploads/myfilewithadminaccess.php
に
http://example.com/uploads/index.php?file=myfilewithadminaccess.php
.htaccess
RewriteEngine On
RewriteRule ^([^/]*)$ ./index.php?file=$1 [L]
そしてindex.php
、ファイルを解析して出力を与えるだけです。
index.php
:<?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);
?>
注: URL の通過を許可する前に、入力をサニタイズする必要があります。そのため、人々は注射../
などを行う可能性があります。それらには注意が必要です。
これが役に立てば幸いです。完全に問題ありません。