5

以下の fwrite にコード インジェクションの脆弱性があるのだろうか?

foreach($_POST as $key=>$val) {
    fwrite($fh, "\nPOST variable named " . $key . " has the value " . $val);
}

ログファイルに値を書き込む前に、何らかの方法で値をサニタイズする必要がありますか?

アップデート。fh はログ ファイル ハンドラです。

4

3 に答える 3

3

ログファイルがコンシューマーによってプレーン テキストとして扱われる限り (常にそうあるべきです)、脆弱性はありません。

ログファイルの未処理の内容を HTML の一部として出力することにした場合、それは実際の脆弱性になります (おそらく、実際にはそれほど重大な影響はありませんが、それでも影響はあります)。htmlspecialcharsしかし、問題は、単にログを書き込むこのコードではなく、を呼び出さずに HTML 内にテキストを表示する「その他の」コードにあります。

于 2012-07-13T08:37:06.033 に答える
3

それは何であるかによって異なります$fh$fhが HTML ファイルの場合、問題が発生する可能性があります。それがテキストファイルであるか、外部のブラウザからアクセスできない場合はそうではありません。

htmlspecialchars(..)HTML 出力の場合は常に使用することをお勧めします。

更新

次の場合は問題ありません。

  • ログファイルは別の場所にあります (public_html の外にあり、基本的にブラウザからはアクセスできません)
  • ウェブサーバーはヘッダーを送信せずtext/html、アクセス可能な場合は通常のテキスト ファイルのように扱います
于 2012-07-13T08:38:34.820 に答える
2

これは、反映されたXSS(クロスサイトスクリプティング)攻撃の原因となる可能性があります(ユーザーに提供されるHTMLファイルに書き込んでいる場合)。あなたは攻撃によって害を受けることはありませんが、一部の素朴なユーザーは害を受けるでしょう。

于 2012-07-13T08:40:32.873 に答える