クロスサイトスクリプティング(XSS)の対処法

クロスサイトスクリプティング(XSS)とは

WEBサイト中で動的にHTMLやJavascriptを生成している部分に、悪意のあるコードを埋め込む攻撃のこと。

この対策は本質的な対策法は、 悪意あるコードを埋め込めないようにすることです。

クロスサイトスクリプティング(XSS)対策

1. 入力値の制限する

HTMLにはmaxlengthという入力文字制限数を決められるものがあり、 下のコードは9文字以上は入力できないという意味です。

phpにもstrlenという文字数を数える関数が存在するので下のコードのようにすることができます。

if (strlen($data) > 8) {
$_errors[] = "文字数が8文字を超えています" ;
}

2. サニタイジング(スクリプトの無害化)

<> 、  、 & を文字参照にするためにはエスケープ処理を行う必要があります。

エスケープ処理を可能にする関数がhtmlspecialchars関数です。

htmlspecialchars(エスケープする文字列, エスケープの種類, 文字コード);

で定義することができます。 例えば、

$str = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');

このように記述します。

ここで、第二引数のエスケープの種類は三種類あります。

1.ENT_COMPAT ダブルクォートは置き換えるが、シングルクォートは置き換えない

2.ENT_QUOTES シングルクォートとダブルクォートの両方を置き換える

3.ENT_NOQUOTES シングルクォートとダブルクォートの両方を置き換えない

以上でサニタイジングの説明は終わります。

まだまだクロスサイトスクリプティング(XSS)の対処法はたくさんあるので、学んでいきたいです。