kousukeのブログ

株式会社グローバルアイティー 代表取締役

【Webサイトへの攻撃と防御】

色々な書籍が、Webサイトの防御方法をアレコレ書いてますが

htmlspecialchars関数

とか言うのがPHPファイルの中に書いてあるだけで大分違うみたい。

オリジナリティ溢れる防御をすればするほど、破られた時の責任は大きいし、脆弱性を見つけてくれる他人も機関も無かったりする。

 

個性のないやり方であれば脆弱性が発見された時、瞬く間に対策が発表される。

と、思ったのだけど、Chat4との会話は以下。
WAFで防げる範囲なのか?


質問:
htmlspecialchar関数で防げない攻撃は何ですか

回答:
htmlspecialchars関数だけでは、以下のような種類の攻撃を防ぐ
ことはできません。

SQLインジェクション:
これはユーザーの入力がデータベースクエリの一部として
解釈される場合に発生します。
これを防ぐには、パラメータ化されたクエリや
プリペアドステートメントを使用する必要があります。


CSSインジェクション:
ユーザーの入力がCSSとして解釈される可能性がある場合、
htmlspecialcharsは十分ではありません。
例えば、<style>タグ内またはstyle属性内のユーザー入力は
依然として危険です。

HTTPヘッダーインジェクション:
ユーザーの入力がHTTPヘッダーとして解釈される可能性が
ある場合、これも危険です。

各種コードインジェクション:
PHPJavaScript、シェルなど、ユーザー入力がそ
のまま実行される可能性がある場合には、
コードインジェクション攻撃が可能となります。

これらの攻撃を防ぐためには、その他の防御策
(例えば入力検証、出力エンコーディング
セキュアなヘッダーの使用、セキュアな
コンテンツポリシーの適用等)が必要です。