3

ユーザーが PHP ファイルをアップロードして実行せずにダウンロードできるようにしたいのですが、特定のディレクトリに対して PHP をオフにして、プレーン テキストとして動作するようにする必要があります。

私はこれを試しましたが、それは適切な解決策ですか?

RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off
4

1 に答える 1

2

プロキシ スクリプトを使用してこれを処理できます。

.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);
?>

フィドル: http://codepad.viper-7.com/68FSIU

注: URL の通過を許可する前に、入力をサニタイズする必要があります。そのため、人々は注射../などを行う可能性があります。それらには注意が必要です。

これが役に立てば幸いです。完全に問題ありません。

于 2012-10-11T10:09:59.453 に答える