旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

JSONはセキュリティ上危険?

2007年6月12日

「サーバ側がJSONデータとして出力したテキストを
クライアント側のjavascriptが非同期通信で取り込み、evalを使ってパースする。」
という手順がセキュリティホールになるらしいと、エントリ上でみました。

しかしながら、
ググって調べても具体的に危険な点を示しているエントリが見つからない。
どこが危険といわれているんだろ?

確かに、eval内に自由な情報が入りうると困るけど
そのためには
1. 悪意ある者の意図通りのリクエストをクライアントに投げさせる
2. 利用者としてサーバ側のデータにjsスクリプトを挿入して、他の利用者にjsを実行させる
の必要がある。

1については、あくまで「意図的に投げさせる」までがセキュリティホールなので
JSONもevalも関係ないし

2については、どちらかといえばXSSのようなサーバ側の問題なので
気をつければ簡単に対処可能なはず。

やられたときのダメージの大きさなのかなとも思ったんですが
そもそも、javascriptなんて、HTML上でいくらでも書くことができるので
そう考えるとXSSの方が痛いよなぁ。
HTMLソースとしてjavascriptを書ける時点で、常時evalみたいなもんだし。

よくわからないですけど、
とりあえずは、2に気をつければいいのかしらん。
↓追記

ココ読むといいよとyoshukiさんに言われました。

・・・なるほど
外部サービスのAPIからJSONデータを取得するときは、
javascript側でチェックしないと駄目だよね、ってことか。
確かにその通りスね。