xss攻击原理
2019-12-04 本文已影响0人
这是什么娃哈哈
什么是XSS
xss就是攻击者在web页面插入恶意的Script代码,当用户浏览该页之时,嵌入其中web里面的Script代码会被执行,从而达到恶意攻击用户的特殊目的。
xss的类型
xss类型一般分为三种:
第一种:反射型XSS
反射型XSS只是简单的把用户输入的数据“反射”给浏览器.也就是说需要诱使用户“点击”一个恶意链接,才能攻击成功。反射型XSS也叫作“非持久型XSS”
第二种:储存型XSS
存储型XSS会把用户输入的数据‘存储’在服务器端。当访问数据库数据时,从数据库取出数据,并由HTML显示,这时导致了XSS的产生。
比如黑客将恶意js脚本写在一个博客中,下次任何人访问这个博客,都会在他们的浏览器中执行这段恶意js脚本。导致‘Cookie劫持’等。
第三种:DOM Based XSS
实际上,这种类型的XSS并非按照“数据是否保存在服务器端”来划分的,从效果上来说也是反射型XSS单独划分出来的,因为DOM Based XSS 的形成原因比较特别。这是由于客户端脚本自身解析不正确导致的安全问题。
修复建议
1)对重要的Cookie字段使用HTTPOnly参数;
2)检查所有用户可控输入。对所有的输入点进行严格的检查,过滤或拦截所有不符合当前语境的输入。由于无法预期所有可能的输出点语境,此种方法效果较差;
3)检查所有用户输入的输出点。因为XSS最终攻击是发生在输出点,因此需要分析出用户输入数据的所有输出点的环境,是输入在HTML标签中,还是HTML属性、script标签、事件、CSS位置中,针对不同的输出位置,制定不同的转义或过滤规则;
4)处理富文本。在文章、论坛等需要用到富文本的地方,需要特别注意富文本与XSS的区分,严格禁止所有的危险标签及“事件”,原则上应当使用白名单过滤标签、事件及属