コンテンツにスキップ

Cordova Cross-Site Scripting (XSS)

Cordova クロスサイトスクリプティング (XSS)

説明

モバイルCross-Site Scripting (XSS) 攻撃は、悪意のあるスクリプトが、本来は無害で信頼できるコンテンツにインジェクションされるインジェクションの一種です。XSS攻撃は、攻撃者が以下のいずれかを介して悪意のあるコードをインジェクションできる場合に発生します。

  • 信頼できないプロセス間通信 (IPC) 入力
  • Man-in-the-Middle攻撃
  • Webサーバーアプリケーションに保存されている信頼できないコンテンツ
  • 信頼できないローカルファイル入力

XSSの存在をテストするためのサンプルスクリプト

<script>alert("Ostorlab XSS!")</script>

<img src="http://ostorlab.co/js_xss2" onerror=alert(document.cookie)>

CordovaアプリケーションのXSS脆弱性は、ターゲットとなる電話のネイティブ機能へのアクセスを許可し、連絡先、メッセージ、カメラ、音声、位置情報への不正アクセスにつながる可能性があるため、クリティカルです。

推奨事項

アプリケーションは、提供されたすべての入力を検証し、安全なHTMLフォーマットAPIを使用する必要があります。推奨されるアプローチは、許容される文字のリストを定義し、それらのみを許可することです。たとえば、許容される文字は、大文字、小文字、数字(つまり、a-zA-Z、および 0-9)です。

フレームワークは入力を検証し、XSSの脆弱性を防ぐためのメソッドを提供し、最新のフレームワーク(Angular JS 2、React JS)はユーザー入力を自動的にエスケープします。

Sencha Ext JSを使用して入力をエスケープするには、次のメソッドを使用できます。

  • Ext.util.Format.stripTags
  • Ext.util.Format.stripScripts
  • Ext.util.Format.htmlEncode/Decode

リンク

標準

  • OWASP_MASVS_L1:
    • MSTG_PLATFORM_2
  • OWASP_MASVS_L2:
    • MSTG_PLATFORM_2
  • CWE_TOP_25:
    • CWE_79
    • CWE_20
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_6_2
    • REQ_6_3
    • REQ_11_3
  • OWASP_MASVS_v2_1:
    • MASVS_CODE_4
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_3_4
    • CC_4_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5