9

画像アップローダ スクリプトがあるとします。アップロード ディレクトリが Php や HTML をプレーン テキストとして表示するだけで実行するのを防ぎたいとします。

簡単に言えば、そのディレクトリにアップロードevil.phpしてアクセスしようとすると、プレーンテキストのソースしか表示されず、html や php は実行されません。(しかし、私はまだ画像が正常に表示されることを望んでいます)

私はそれができることを知っていますが、私が望むのは、画像を除くアップロードディレクトリから出力されるすべてのものに対してサーバーによって自動的header("content-type:text/plain");に設定されるため、それは役に立ちません。content-type:text/plain

注: 私は php 5.3.2/Cent OS と最新の cPanel を実行しています。

ありがとう

4

4 に答える 4

4

少なくとも、アップロード ディレクトリの .htaccess ファイルに以下を追加する必要があります。

Options -Indexes
Options -ExecCGI
AddHandler cgi-script .php .php3 .php4 .phtml .pl .py .jsp .asp .htm .shtml .sh .cgi

.htaccess ファイルの問題は、アップロードがアップロードをブロックしない場合、.htaccess ファイルが上書きされる可能性があることです。別の解決策は、ここに示されている Apacheディレクティブ(Apache を使用している場合) を使用することです。

于 2010-04-11T22:22:49.570 に答える
3

をアップロード.htaccessディレクトリに配置します。

AddType 'text/plain' .php .html

また

ForceType 'text/plain'
#...
于 2010-04-11T22:23:48.347 に答える
3

「ディレクトリのスクリプト実行を無効にする」をGoogleで検索して、いくつかのオプションを見つけます。これは私のお気に入りです:

AddType text/plain .html .htm .shtml .php .php3 .phtml .phtm .pl .py .cgi .js

唯一の欠点は、実行しない拡張機能に明示的に名前を付ける必要があることですが、すべてのファイル拡張子がプレーンテキストと見なされるように、ある種のワイルドカードを使用して、Mime Type を手動で追加することが (単なる予感) 可能かもしれません標準の画像表示オプションの場合。

于 2010-04-11T22:25:50.127 に答える
0

画像アップローダーについて話しているので、画像を として表示したくありませんplain/text。画像を悪意のあるファイルからどのように分離しますか? そのタスク中に、特定のファイルの保存をブロックするだけです。

于 2010-04-11T22:25:36.627 に答える