このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

h() の脆弱性

h() 関数は内部で htmlspecialchars() 関数を呼んでいるのですが、デフォルトの引数で呼び出しているため、シングルクォーテーションがエスケープされないとのことです。

htmlspecialchars/htmlentitiesの正しい使い方

h() は CakePHP の随所で呼ばれているため、ソースコード( /cake/basics.php )を書き換えた方が良さそうです。

修正前

function h($text) {
        if (is_array($text)) {
                return array_map('h', $text);
        }
        return htmlspecialchars($text);
}

修正後

function h($text) {
        if (is_array($text)) {
                return array_map('h', $text);
        }
        return htmlspecialchars($text, ENT_QUOTES);
}
back to top