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认证:
  • 相关阅读:
    Android 通过外键连接两个数据库
    WustOJ 1575 Gingers and Mints(快速幂 + dfs )
    Android数据库信息显示在listview上
    Android 开机启动通知
    JAVA车票管理系统(简单GUI)
    POJ1159 Palindrome(数位DP)
    python之Memcached 安装及操作
    Django中的缓存
    VUE 框架
    flask----flask-session
  • 原文地址:https://www.cnblogs.com/hacker-snail/p/14106109.html
Copyright © 2011-2022 走看看