跳转至

Cordova Cross-Site Scripting (XSS)

Cordova 跨站脚本攻击 (XSS)

描述

移动端跨站脚本攻击(XSS)是一种注入类型,将恶意脚本注入到原本良性且受信任的内容中。当攻击者能够通过以下方式注入恶意代码时,就会发生 XSS 攻击:

  • 不受信任的进程间通信 (IPC) 输入
  • 中间人攻击
  • Web 服务器应用程序中存储的不受信任内容
  • 不受信任的本地文件输入

测试 XSS 存在的示例脚本

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

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

Cordova 应用程序的 XSS 漏洞极其严重,因为它们允许访问目标手机上的原生功能,并可能导致未经授权访问联系人、消息、相机、音频和位置信息。

建议

应用程序必须验证所有提供的输入,并使用安全的 HTML 格式化 API。推荐的方法是定义一个可接受字符的列表,并且只允许使用这些字符。例如,可接受的字符将是大写字母、小写字母和数字(即 a-zA-Z0-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