以下の fwrite にコード インジェクションの脆弱性があるのだろうか?
foreach($_POST as $key=>$val) {
fwrite($fh, "\nPOST variable named " . $key . " has the value " . $val);
}
ログファイルに値を書き込む前に、何らかの方法で値をサニタイズする必要がありますか?
アップデート。fh はログ ファイル ハンドラです。
以下の fwrite にコード インジェクションの脆弱性があるのだろうか?
foreach($_POST as $key=>$val) {
fwrite($fh, "\nPOST variable named " . $key . " has the value " . $val);
}
ログファイルに値を書き込む前に、何らかの方法で値をサニタイズする必要がありますか?
アップデート。fh はログ ファイル ハンドラです。
ログファイルがコンシューマーによってプレーン テキストとして扱われる限り (常にそうあるべきです)、脆弱性はありません。
ログファイルの未処理の内容を HTML の一部として出力することにした場合、それは実際の脆弱性になります (おそらく、実際にはそれほど重大な影響はありませんが、それでも影響はあります)。htmlspecialchars
しかし、問題は、単にログを書き込むこのコードではなく、を呼び出さずに HTML 内にテキストを表示する「その他の」コードにあります。
それは何であるかによって異なります$fh
。$fh
が HTML ファイルの場合、問題が発生する可能性があります。それがテキストファイルであるか、外部のブラウザからアクセスできない場合はそうではありません。
htmlspecialchars(..)
HTML 出力の場合は常に使用することをお勧めします。
更新:
次の場合は問題ありません。
text/html
、アクセス可能な場合は通常のテキスト ファイルのように扱いますこれは、反映されたXSS(クロスサイトスクリプティング)攻撃の原因となる可能性があります(ユーザーに提供されるHTMLファイルに書き込んでいる場合)。あなたは攻撃によって害を受けることはありませんが、一部の素朴なユーザーは害を受けるでしょう。