セキュリティ 恐怖のXSS

どうも、こんにちはirisawaです。

今日は、XSSというモノについて書きたいと思います。

以下、内容になります。

XSSとは

XSSとは、クロスサイトスクリプティングの略です。「サイト間を横断して悪意のあるスクリプトを実行される」等の危険性があるものをXSSと呼ぶそうです。前回出てきたSQLインジェクションは直接攻撃と呼ばれ、XSSは間接攻撃と呼ばれています。なぜこのように呼ばれてるかというとSQLインジェクションはwebサーバと攻撃者という関係ですが、XSSはwebサーバと攻撃者との間にXSSを知らずに実行してしまう被害者が中間に存在する為、このような呼ばれ方をしているそうです。

XSSが出来る理由

バグです。詳しく言うと、外部から来た値に対するチェック漏れやエスケープ忘れ等の単純ミスによってXSSが簡単に出来てしまいます。

対策

ユーザーからの入力値にはhtmlspecialchars()を使用し、値に入っている<などを文字実体参照の<に置換させます。また、htmlspecialchars()の第2引数には’(シングルコーテーション)も置換してくれるENT_QUOTEも忘れずに指定しましょう。

SymfonyではSettings.ymlのescaping_strategyをbothに設定するだけで、アクションで取得した値を htmlspecialchar()を使用してくれるのでぜひ使う様にしましょう。

htmlspecialchar()という便利な関数があるのは知っていたのですが、第2引数があるのは知りませんでした。他にもOJTに入り、知らなかった事や今までやっていなかった事が沢山出てきました。
なので次のブログでは自分自身の確認の為にも、LinuxのインストールからVMWareの起動までについて何回かに分けて書きたいと思っています。

(2008/11/5 10:53 irisawa追記)
お待たせしました、動画上がりました。

コメントをどうぞ

名前: (Required)

eMail: (Required)

Website:

Comment:

Spam Protection by WP-SpamFree