zoukankan      html  css  js  c++  java
  • CSRF总结

    CSRF(Cross-site request forgery )跨站请求伪造

    条件

    • CSRF的攻击建立在浏览器与web服务器的会话中
      • 直接的利用了用户浏览器保存的Cookie 让用户去执行某个动作
    • 欺骗用户访问URL
      • 让用户在同一浏览器中打开恶意URL,该网页会向用户登录的网站,发送请求,而服务器会认为请求是用户发出的,执行后,攻击成功

    如何判断是否存在CSRF漏洞

    • 判断一个网站是否存在CSRF漏洞,其实就是判断其对关键信息(比如密码等敏感信息)的操作(增删改)是否容易被伪造。
    • 要确定web应用的所有功能,哪些操作是敏感的,比如:修改密码,转账、发表留言

    CSRF与XSS的区别

    CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限,而XSS是直接盗取到了用户的权限(如,获取用户Cookie),然后实施破坏

    攻击场景

    get

    • 直接在URL中构造相关参数,诱导用户点击访问URL

    post

    • 可以构造一个form表单,利用JavaScript自动提交表单,(自动执行submit)
      如:

      <script>document.getElementById('submit').click();</script>
      

    伪装

    • 设置跳转页面

    • 设置不跳转页面

      • 利用AJAX

      • 通过form表单的target,如

               <iframe> frameborder="0" name="myiframe" width="0px" height="0px"></iframe>
               <form id="myform" method="post" target="myiframe" action="...">
        
        

    Cookie机制

    • 本地cookie(持久型cookie),设定了Expire字段,存储于本地
    • 临时cookie(session cookie),存储在内存中,关闭浏览器时,失效

    预防CSRF

    • 二次确认
    • Token认证
      • 验证码认证:
      • Token认证:
  • 相关阅读:
    SQL解发器与SQL游标实例
    动态调用JS
    HDU_5729_rmq+二分
    struts2 在MyEclipse中 的配置
    Struts 1.2 中如何测试Action
    OGNL使用小结【转】
    JUnit中assertEquals和assertSame方法的不同
    struts2 ActionContext
    ser文件与Java对象序列化
    测试Action组件代码(StrutsTestCase)
  • 原文地址:https://www.cnblogs.com/hacker-snail/p/14106109.html
Copyright © 2011-2022 走看看