美文网首页让前端飞
web前端安全的攻与防

web前端安全的攻与防

作者: JokerPeng | 来源:发表于2017-11-01 14:52 被阅读0次

    一、什么是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请求的标签,如下:
      <link href=' '>
      <img src=' '>
      <video src=' '>

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

    <script src='http://www.a.com/json?callback=hijack'></script>
    <script>
        function hijack(data) {
            console.log(data);
        }
    </script>
    
    • (3) Flash CSRF
    4、CSRF的防御
    • (1) 增加验证码
    • (2) Referer验证
      服务器判断页面来源是否正确
    • (3) Token验证。尽量把Token放在表单中(构造一个隐藏的input元素),以POST提交,避免Token泄露

    四 、CSRF和XSS的区别

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

    相关文章

      网友评论

        本文标题:web前端安全的攻与防

        本文链接:https://www.haomeiwen.com/subject/vxcgpxtx.html