1、跨站脚本攻击(XSS Cross Site Scripting)
网站一大堆文章 解释啥是XSS
举几个不常见的案例:
- 通过SVG文件进行XSS
SVG标签可以通过onload等事件在任何元素上执行JavaScript,而无需用户交互<svg onload="javascript:alert(1)" xmlns="http://www.w3.org/2000/svg"></svg> <svg xmlns="http://www.w3.org/2000/svg"><g onload="javascript:alert(1)"></g></svg> <svg xmlns="http://www.w3.org/2000/svg"><script>alert(1)</script></svg>
- 通过audio、video标签进行XSS
audio、video标签标签可以通过onload等事件在任何元素上执行JavaScript,而无需用户交互<video poster=javascript:alert(1)//></video> <video><source onerror="alert(1)"> <video onerror="alert(1)"><source></source></video>
- 通过内嵌iframe获取权限
- 通过draggable API进行文本注入
- 通过事件处理“ ondragstart”和值为“ true”的属性“ draggable”,“ setData”方法可以将文本“malicious code”而不是“Drop me”到iframe中。该iframe可以包含一个网页,其中包含一个用于输入数据的输入字段。请注意,由于安全隐患,跨域拖放功能同时受到严格限制。
- 通常情况下,要禁用iframe的使用,可以在body的onLoad方法中遍历dom节点,移除iframe标签
2、跨域访问(CORS CrossOrigin Resources Sharing)
{
"Access–Control-Allow-Origin": "*"
}
对于设置了允许所有域访问的接口来说,带来快捷的同时,也带来风险。
通常情况下只允许同域访问,在特殊情况下需要允许a.com访问b.com时,在b.com上设置如下来允许a.com访问
{
"Access–Control-Allow-Origin": "http://a.com"
}
对跨越访问的请求要严格校验session信息,包括请求头、请求参数等
3、Web Worker 和 Service Worker 带来的安全问题
Web Worker使用教程
Service Worker使用教程
通过预防XSS,来避免带来的问题
- ddos
用户一旦访问恶意页面或者网站时,页面的恶意代码就能把用户的浏览器当作肉鸡,利用WebWorker大规模执行多线程攻击,例如DDos攻击、发送垃圾邮件或者进行网络嗅探 - postMessage + innerHTML带来的问题
postMessage不通过服务器,如果不经过验证和过滤,可能成为XSS注入点。攻击者完全可以构造恶意的data来注入页面DOM,构造XSS攻击,形如“<script></script>”等worker.addEventListener(‘message’,function(e) { document.getElementById(‘result’).innerHTML = e.data; }, false);
4、file:// 协议跨域访问
WKWebview控件将allowFileAccessFromFileURLs 设置为YES,开启了file域访问,且允许file域访问http域,但是并未对file域的路径做严格限制。
[preferences setValue:@YES forKey:@"allowFileAccessFromFileURLs"];
网友评论