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-z、A-Z 和 0-9)。
框架提供了验证输入并防止 XSS 漏洞的方法,现代框架(Angular JS 2、React JS)会自动对用户输入进行转义:
要使用 Sencha Ext JS 转义输入,可以使用以下方法:
Ext.util.Format.stripTagsExt.util.Format.stripScriptsExt.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