V50: Web フロントエンドセキュリティ

このカテゴリはアプリケーションの Web フロントエンドを介して実行される攻撃から保護する要件に焦点を当てています。これらの要件はマシン間ソリューションには関係ありません。

V50.1 サイト分離アーキテクチャ

#説明L1L2L3CWE

50.1.1

[追加, 3.4.5 を廃止] あるオリジンでロードされたドキュメントやスクリプトが別のオリジンのリソースとやり取りする方法や、Cookie のホスト名制限など、「同一オリジンポリシー」によって提供される制限の恩恵を受けるために、別のアプリケーションは異なるホスト名でホストされている。

668

V50.2 ブラウザのセキュリティメカニズムヘッダ

#説明L1L2L3CWE

50.2.1

[修正, 14.4.3 から移動] HTML, DOM, CSS, JSON, JavaScript インジェクション脆弱性などの XSS 攻撃に対する影響を軽減するのに役立つ Content-Security-Policy レスポンスヘッダが設定されている。

1021

50.2.2

[14.4.4 から移動] すべてのレスポンスに X-Content-Type-Options: nosniff ヘッダが含まれている。

116

50.2.3

[修正, 14.4.5 から移動] Strict-Transport-Security ヘッダが、Strict-Transport-Security: max-age=31536000; includeSubdomains のように、すべてのレスポンスとすべてのサブドメインに含まれている。

523

50.2.4

[14.4.6 から移動] URL 内の機密情報が Referer ヘッダを介して信頼できない関係者に公開されないように、適切な Referrer-Policy ヘッダが含まれている。

116

50.2.5

[修正, 14.4.7 から移動] Web アプリケーションのコンテンツはデフォルトでサードパーティのサイトに埋め込むことができない、および適切な Content-Security-Policy: frame-ancestors を使用して必要な場所でのみ正規のリソースの埋め込みが許可されている。X-Frame-Options ソリューションは非推奨であることに注意する。

1021

50.2.6

[追加, 14.5.3 から分割] クロスオリジンリソース共有 (CORS) Access-Control-Allow-Origin ヘッダが信頼できるオリジンの厳密な許可リストを使用している。 "Access-Control-Allow-Origin: *" を使用する必要がある場合、レスポンスに機密情報が含まれていない。

183

50.2.7

[追加] Content-Security-Policy ヘッダが違反を報告する場所を指定している。

V50.3 ブラウザのオリジン分離

サーバサイドでリクエストを受け入れる際、アプリケーション自体あるいは信頼できるパーティによって開始されたものであることを確認する必要があります。

ここでのキーワードは JavaScript の Same Origin Policy や Cookie の SameSite ロジックなどのブラウザのセキュリティポリシーです。

カテゴリには以下のアイデアでの要件を含む必要があります。

  • リクエストが信頼できるパーティにより開始されたこと (CSRF, CORS 構成ミス)

  • レスポンスは信頼できるパーティのみに読み取れること (CORS 構成ミス)

#説明L1L2L3CWE

50.3.1

[修正, 4.2.2 から移動, 13.2.3 からマージ] アプリケーションがクロスサイトリクエストフォージェリ (CSRF) 攻撃を防御し、認証された機能や機密性の高い公開機能を保護するために、開発フレームワークに組み込まれた CSRF 対策機能や CSRF トークンに加えて多層防御を使用している。

352

50.3.2

[追加] メッセージのオリジンが信頼できない場合、またはメッセージの構文が無効な場合、postMessage インタフェースによって受信したメッセージを破棄している。

346

50.3.3

[追加, 14.5.3 から分割] Origin ヘッダが目的のクロスオリジンリソース共有 (CORS) ポリシーを満たすために、許可されたオリジンの定義済みリストに対して妥当性確認されている。

346

V50.4 クロスサイトスクリプトインクルージョン

#説明L1L2L3CWE

50.4.1

[追加] クロスサイトスクリプトインクルージョン (XSSI) 攻撃を避けるために、JSONP 機能はアプリケーションのどの部分でも有効になっていない。

50.4.2

[追加] クロスサイトスクリプトインクルージョン (XSSI) 攻撃を防ぐために、認可が必要なデータは JavaScript ファイルなどのスクリプトリソースレスポンスには含まれていない。

V50.5 意図しないコンテンツ解釈

#説明L1L2L3CWE

50.5.1

[文法, 12.5.2 から移動] アップロードされたファイルへの直接のリクエストが HTML および JavaScript コンテンツとして決して実行されない。

434

50.5.2

[修正, 1.12.2 から移動] アプリケーションから表示またはダウンロードする必要がある場合、ユーザがアップロードしたファイルが octet stream download 、または cloud file storage bucket などの無関係なドメインから提供されている。

646

50.5.3

[追加, 14.4.2 を廃止] ブラウザが不正なコンテキスト (API または他のリソースが直接読み込まれる場合など) で HTTP レスポンスのコンテンツや機能をレンダリングすることを防ぐために、セキュリティ制御が行われている。可能な制御には、ヘッダが正しいコンテキストであることを示さない限りコンテンツを提供しない Content-Security-Policy: sandbox, Content-Disposition: attachment などが含まれる。

V50.6 外部リソース完全性

#説明L1L2L3CWE

50.6.1

[修正, 14.2.3 から移動] JavaScript ライブラリ、CSS 、Web フォントなどのクライアントサイド資産がコンテンツ配信ネットワーク (Content Delivery Network, CDN) や外部のプロバイダで外部的にホストされている場合には、サブリソース完全性 (Subresource Integrity, SRI) を使用して資産の完全性を確認している。

829

V50.7 ブラウザのセキュリティに関するその他の考慮事項

#説明L1L2L3CWE

50.7.1

[追加, 5.1.5 から分割] ユーザがアプリケーションの制御外の URL にリダイレクトされる場合、アプリケーションはナビゲーションをキャンセルするオプションとともに通知を表示している。

50.7.2

[修正, 1.14.6 から移動] アプリケーションは依然としてサポートされており安全であると考えられているクライアント側テクノロジのみを使用している。この要件を満たさないテクノロジの例としては NSAPI プラグイン, Flash, Shockwave, ActiveX, Silverlight, NACL, クライアントサイド Java アプレットなどがある。

477

参考情報

詳しくは以下の情報を参照してください。

Last updated