40

私が働いている会社は最近、私たちがホストしているサイトで多くのヘッダー インジェクションとファイル アップロードのエクスプロイトに見舞われました。ヘッダー インジェクション攻撃に関する問題は解決しましたが、アップロードのエクスプロイトはまだ制御できていません。

デザイナーがサイトの構造にコピーし、いくつかの変数を変更し、すぐに使用できるアップロード フォームを作成できる、社内で使用するプラグ アンド プレイ タイプの一連のアップロード スクリプトをセットアップしようとしています。彼らのサイト。私たちは可能な限り公開を制限しようとしています (すでに fopen とシェル コマンドをシャットダウンしています)。

この 1 時間サイトを検索したところ、外部の情報源に依存する特定の方法を扱ったさまざまな回答が見つかりました。信頼できる保護方法として使用するのに十分具体的である、スクリプトのみの最適なソリューションは何だと思いますか? また、可能であれば、言語を PHP または疑似コードに限定したいと考えています。

編集:私は自分の答えを見つけました(以下に投稿)。シェルコマンドexec()を使用していますが、スクリプトファイルのアップロードをブロックすると(このソリューションは非常にうまく機能します)、遭遇することはありません問題。

4

3 に答える 3

39

私見による最善の解決策は、アップロードされたファイルを含むディレクトリを「Web」環境の外に置き、スクリプトを使用してそれらをダウンロード可能にすることです。このように、誰かがスクリプトをアップロードしても、ブラウザから呼び出して実行することはできず、アップロードされたファイルの種類を確認する必要もありません。

于 2008-11-01T23:53:04.530 に答える
1

Hardened-PHPを使用して構成し、 move_uploaded_file$_FILES スーパーグローバルを使用してプレーン スクリプトを作成します。スクリプトが単純であればあるほど、安全になります (少なくとも、実行中の PHP バージョン自体と同じくらい安全です)。

于 2008-11-01T22:59:52.140 に答える