web前端安全的攻与防

一、什么是web安全?

web安全,也叫web应用安全,《白帽子讲Web安全》一书中第一章最后有这么一句话讲的很好:“互联网本来是安全的,自从有了研究安全的人,就变得不安全了。”

1、随着web应用的发展,web安全也在不断地发展
  • Web 1.0时代,更多被关注的是服务端的脚本安全问题,如SQL注入等
  • Web 2.0时代,2005年Samy蠕虫的爆发,震惊了世界,Web安全主战场由服务端转向浏览器。
2、web安全的本质是信任问题
  • 由于信任,正常处理用户恶意的输入导致问题的产生
  • 非预期的输入
  • 安全问题是一个木桶原理,短的那块板决定了木桶究竟能装多少水,同理,把99%的安全问题都处理了,那么1%的遗留问题就会造成安全问题的那块短板。
3、常见的web安全问题

常见的web安全问题主要是XSS和CSRF两种攻击方式。

二、XSS

1、XSS是什么?

XSS(Cross Site Scripting):跨站脚本攻击,为了与CSS作区别,简称XSS。XSS是web安全发展史上的一个里程碑,是Web 2.0的一个象征性漏洞。
XSS主要是一种注入式的攻击方式。攻击者在页面植入恶意代码,然后访问者访问这些页面,浏览器就会执行攻击者植入的恶意代码,达到攻击访问者的目的,访问者身份就会被窃取。

2、怎么造成XSS?
  • (1) 对于用户输入没有严格控制而直接输出到页面
  • (2) 对非预期输入的信任
3、XSS的危害
  • (1) 盗取各类用户账号,如机器登录账号,用户网银账号、各类管理员账号等
  • (2) 窃取数据
  • (3) 非法转账
  • (4) 挂马,利用XSS漏洞,挂入恶意代码等
4、XSS防御
  • (1)编码
    对用户输入的数据进行HTML Entity编码
  • (2)过滤
    ① 移除用户上传的DOM属性,如onerror等
    ② 移除用户上传的style节点,script节点、iframe节点等
  • (3)校正
    ① 避免直接对HTML Entity编码
    ② 使用DOM Parse转换,校正不配对的DOM标签

三、CSRF

1、CSRF是什么?

CSRF(Cross Site Request Forgey):跨站请求伪造。

2、浏览器的cookie保存机制
  • Session cookie,浏览器不关闭则不失效
  • 本地cookie,过期时间内不管浏览器关闭与否都不失效
3、CSRF的几种攻击方式
  • (1) HTML CSRF
    HTML CSRF可以发起GET请求的标签,如下:


  • (2) JSON HiJacking
    主要是构造自定义的回调函数,如:
    要对http://www.a.com/csrf.html进行csrf攻击,则可以编写如下代码:



  • (3) Flash CSRF
4、CSRF的防御
  • (1) 增加验证码
  • (2) Referer验证
    服务器判断页面来源是否正确
  • (3) Token验证。尽量把Token放在表单中(构造一个隐藏的input元素),以POST提交,避免Token泄露

四 、CSRF和XSS的区别

  • XSS利用对用户输入的不严谨,向页面注入JavaScript语句,然后执行
  • CSRF通过伪造受信任用户发送请求,依赖于用户要登录网站

你可能感兴趣的:(web前端安全的攻与防)