首页 > 其他分享 >[WEB安全] CSRF攻击和防御

[WEB安全] CSRF攻击和防御

时间:2023-10-30 13:44:22浏览次数:41  
标签:WEB 浏览器 CSRF 用户 cookie 防御 随机数 请求

一、什么是CSRF

   跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。

 跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

 

二、攻击细节

 

跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。

由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。

这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的

三、案例

 

 

四、防御

 

  1. cookie 的 SameSite

            - SameSite

              - Strict:严格 所有跨站请求禁止附带 cookie           - Lax: 宽松           - none:无         - 旧版本浏览器不支持 
  2. 验证 referer 和 origin

                     -  注意:某些浏览器的 referer 是可以被用户禁止的

  1.  - 使用非 cookie 令牌         - 所有接口的认证信息都放在请求头中
  2. 验证码         - 要求每个请求都携带验证码
  3. 表单随机数         - 服务器在生成页面时将一个带有随机数的 input 框隐藏,并放到 session 中,用户填写信息后 提交表单,会自动提交隐藏的表单随机数         - 服务器 先拿到 cookie 判断是否登录过         - 对比提交过来的随机数和之前的随机数是否一致         - 清除 session 中的随机数
  4. 二次验证

 

标签:WEB,浏览器,CSRF,用户,cookie,防御,随机数,请求
From: https://www.cnblogs.com/rlwan/p/17797646.html

相关文章

  • fastapi websockets
    #pipinstallwebsocketsfromuvicornimportrunfromfastapiimportFastAPIapp=FastAPI(title="websocket")fromtypingimportListfromfastapiimportFastAPI,WebSocket,WebSocketDisconnectfromfastapi.responsesimportHTMLResponseht......
  • Android的webview区分录相还是拍照
    背景:集成了一个实名认证的网页,iOS正常但Android点击没有反应,首页想着是webview的某些协议没有实现,于是在网上找到了相关资料,我们简单记录一下核心代码。1.权限配置<uses-permissionandroid:name="android.permission.CAMERA"/><uses-permissionandroid:name="android.permi......
  • 黑马程序员2023新版JavaWeb开发教程学习笔记
    前言该笔记灵感来源于B站《黑马程序员2023新版JavaWeb开发教程,实现javaweb企业开发全流程(涵盖Spring+MyBatis+Springboot》源视频地址:黑马程序员2023新版JavaWeb开发教程个人声明:本文记录个人在进行该视频学习中的知识总结,帮助大家能更快地进行对该视频内容的学习;由于该视频对......
  • calibre-web个人图书在线管理
    calibre注:图片来【本地图书管理:通过calibre-web打造个人在线书城_白毛偷二的博客-CSDN博客】https://blog.csdn.net/qq_39366927/article/details/123013413calibre官方下载地址:https://calibre-ebook.com/downloadlinuxserver/calibre-web:0.6.20-ls221/volume1/docker/c......
  • 网安基础入门(二)——Web其它
    网络安全基础入门(二)——Web其它知识点网站前后端分离及影响Docker容器网站及特点集成软件站及影响第三方建站OSS及影响CDN及其影响负载均衡WAF及其分类网站前后端分离网站前后端分离(Frontend-BackendSeparation)是一种常见的软件架构模式,其中前端和后端开发是分开进......
  • python 安装包时 ERROR: Failed building wheel for webrtcvad
    报错信息:error:subprocess-exited-with-error×Buildingwheelforwebrtcvad(pyproject.toml)didnotrunsuccessfully.│exitcode:1╰─>[9linesofoutput]runningbdist_wheelrunningbuildrunningbuild_pycreatingbuildcre......
  • 王建民老师的期中测试(javaweb学习每日总结-第九天)
    第九天学习今天主要准备了一下建民老师明天考试的内容,也就是所谓的单表增删改查,目前我已经能比较熟练使用mybatis技术来进行数据库的增删改查,也做过了一两个实例,希望明天我能顺利通过王建民老师的测试。 ......
  • javaweb--数据库连接池
    数据库连接池是一个容器,负责分配、管理数据库连接(Connection)它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏好处:资源重用提升系统响应速度避免数据库连接遗漏......
  • javaweb--API详解-PreparedStatemen
    PreparedStatemen1、预编译SQL语句并执行,预防SQL注入问题对关键字进行转义登录模块packagecom.avb.jdbc;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.Statement;publicclassloginin{publicstati......
  • web前端(Vue2.x)接收H264实时视频码流(二进制)进行播放
    1、安装 [email protected]、.vue文件中使用<template><div><videoid="dom_id"muted="muted"controlsclass="video_box"></video><divv-if="!has_data"v-loading="!......