跨站脚本攻击:xss
-
非持久性xss漏洞,也叫反射型xss漏洞。
非持久型 XSS 漏洞攻击有以下几点特征:
- 即时性,不经过服务器存储,直接通过 HTTP 的 GET 和 POST 请求就能完成一次攻击,拿到用户隐私数据。
- 攻击者需要诱骗点击
- 反馈率低,所以较难发现和响应修复
- 盗取用户敏感保密信息
为了防止出现非持久型 XSS 漏洞,需要确保这么几件事情:
- Web 页面渲染的所有内容或者渲染的数据都必须来自于服务端。
- 尽量不要从 URL,
document.referrer
,document.forms
等这种 DOM API 中获取数据直接渲染。 - 尽量不要使用
eval
,new Function()
,document.write()
,document.writeln()
,window.setInterval()
,window.setTimeout()
,innerHTML
,document.creteElement()
等可执行字符串的方法。 - 如果做不到以上几点,也必须对涉及 DOM 渲染的方法传入的字符串参数做 escape 转义。
- 前端渲染的时候对任何的字段都需要做 escape 转义编码。
-
持久型xss ,又被成为存储型xss漏洞,一般需要植入到数据库,危害面广,甚至可以让用户机器编程DDOs攻击的肉鸡,解决方案,前端渲染页面字段进行转义
-
基于字符集的xss:大多数浏览器对字符集都进行了转义处理,尽量抵御大多数的xss攻击、但由于前端页面字符集不固定,用户输入非期望的字符,有时会绕过转义过滤规则 UTF-8!!!!
-
基于flash的跨站xss:其根本也属于反射型xss的一种 ,必须严格管理cookie的读写权限
前端xss攻击中 其中以反射型攻击尤为重要,严格控制ifram,防止代码注入