2011年9月9日金曜日

JSONによるデータのやり取りにはセキュリティ的に色々注意点があるらしい

PHPのイタい入門書を読んでAjaxのXSSについて検討した(3)~JSON等の想定外読み出しによる攻撃~ - ockeghem(徳丸浩)の日記
さらに上表に示す対策のカバー範囲をあわせて考えて、以下で対応することを提案致します。

対策の基本はX-Requested-Withヘッダのチェック
Content-Typeは正しく application/json; charset=UTF-8 と指定
IEに顔を立てて、X-Content-Type-Options: nosniff を指定(あるいは不要か?)
JSON生成ライブラリで設定できる最大限のエスケープ

何もしないと意外に脆弱性が多いんだ。

jQueryとX-Requested-Withのチェックをして文字コードを適切にすればいいということか。でもブラウザでJSONを表示してチェックしたい時には外さないと。(jQuery使ったチェックツール作ればいいか。)

X-Content-Type-Options: nosniffはやった方がいいんだろうけど、未対応ブラウザのことを考えると結局鉄壁ではないしねー。

PHPのjson_encode()って色々オプションがあるんだ。

0 件のコメント:

ブログ アーカイブ

カテゴリー