XSS跨站脚本攻击和CSRF跨站点请求伪造

一、XSS跨站脚本攻击

1、简介

跨站脚本(cross site script)为了避免与样式css混淆,所以简称为XSS,XSS是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式,XSS是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入Web里面的html代码会被执行,从而达到恶意用户的特殊目的,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。

2、XSS攻击的危害

  • 盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
  • 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
  • 盗窃企业重要的具有商业价值的资料
  • 非法转账
  • 强制发送电子邮件
  • 网站挂马
  • 控制受害者机器向其它网站发起攻击

3、原因分析

主要原因:过于信任客户端提交的数据!

解决办法:不信任任何客户端提交的数据,只要是客户端提交的数据就应该先进行相应的过滤处理然后方可进行下一步的操作。客户端提交的数据本来就是应用所需要的,但是恶意攻击者利用网站对客户端提交数据的信任,在数据中插入一些符号以及javascript代码,那么这些数据将会成为应用代码中的一部分了。那么攻击者就可以肆无忌惮地展开攻击啦。因此我们绝不可以信任任何客户端提交的数据!!!

4、XSS攻击类型(非持久性跨站点脚本攻击​​​​​​​和持久性跨站点脚本攻击​​​​​​​

  1. 反射型xss攻击​​​​​​​(非持久性跨站点脚本攻击):非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。​​​​​​​
  2. 存贮型xss攻击(持久性跨站点脚本攻击):会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在,持久的XSS相比非持久性XSS攻击危害性更大,因为每当用户打开页面,查看内容时脚本将自动执行。​​​​​​​

5、XSS漏洞预防和修复

  1. html实体的存在是导致XSS漏洞的主要原因之一,因此我们需要将这些实体全部转换为相应的实体编号。
  2. 用户将数据提交上来的时候进行HTML编码,将相应的符号转换为实体名称再进行下一步的处理。
  3. 将重要的cookie标记为http only, 这样的话Javascript 中的document.cookie语句就不能获取到cookie了
  4. 表单数据规定值的类型,例如:年龄应为只能为int、name只能为字母数字组合;
  5. 过滤或移除特殊的Html标签, 例如:

你可能感兴趣的:(Web)