web前端安全性——CSRF跨站请求伪造

承接上篇讲述的XSS跨站脚本攻击

跨站请求伪造(CSRF)

1、概念

CSRF(Cross-site request forgery) 跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。跨站请求伪造,是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。

2、与XSS区别

跟跨网站脚本(XSS)相比,XSS利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。CSRF漏洞的本质是浏览器在不应该发送cookie的地方发送cookie。
cookie相关知识:cookie的属性:key、value、expires、domain、path、secure、httponly(只能后端修改)、samesite(禁止第三方获得cookie);只要有请求就会携带cookie;cookie无法验证是从哪个网站过来的;cookie遵守的是同站策略不是同源策略

3、CSRF流程

(1)目标用户已经登录了网站,能够执行网站的功能
(2)目标用户访问了攻击者构造的URL

4、CSRF的常见攻击

(1)GET类型的CSRF

<img src="攻击方让受害者做的网站请求”>

(2)POST类型的CSRF
hidden隐藏域

<form action="攻击方让受害者做的网站请求”method=POST><input type="hidden”name="account” value="xiaoming”/><input type="hidden” name="amount”value="10000”/><input type="hidden”name="for" value="hacker" />
</form>
<script> document.forms[0].submit();</script>

(3)链接类型的CSRF

<a href="攻击方让受害者做的网站请求”taget="_blank">
信息
<a/>

5、CSRF的危害

(1)攻击一般发起在第三方网站,而不是被攻击的网站。被攻击的网站无法防止攻击发生。攻击利用受害者在被攻击网站的登录凭证,冒充受害者提交操作;而不是直接窃取数据。整个过程攻击者并不能获取到受害者的登录凭证,仅仅是“冒用”;
(2)跨站请求可以用各种方式:图片URL、超链接、CORS(跨域资源共享)、Form提交等等。部分请求方式可以直接嵌入在第三方论坛、文章中,难以进行追踪;
(3)发送恶意请求消息;
(4)配合蠕虫扩散;
(5)盗取信息

6、CSRF的防范

(1)用户跳转第三方网页的提示(提醒用户,主要增加用户防范)
如:CSDN在文章中的一些链接跳转时会提示用户
在这里插入图片描述
(2)阻止不明外域的访问
前端采用方法:用Token代替Cookie;双重Cookie;samesite
注意:通过前后台一起实现CSRF渗透攻击防范

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/484354.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SSM的绿色农产品销售系统的设计与实现

随着电子商务在各行各业中的广泛应用,为更多的产品提供了销售渠道。但就目前来看&#xff0c;这些以工业产品为热销的大型综合性电商平台&#xff0c;农产品销售量很不理想。另外&#xff0c;市面上存在专门销售农产品的网站&#xff0c;大部分消费者没有形成在网上购买农产品的…

【kubernetes】二进制部署k8s集群之cni网络插件flannel和calico工作原理(中)

↑↑↑↑接上一篇继续部署↑↑↑↑ 目录 一、k8s集群的三种接口 二、k8s的三种网络模式 1、pod内容器之间的通信 2、同一个node节点中pod之间通信 3、不同的node节点的pod之间通信 Overlay Network VXLAN 三、flannel网络插件 1、flannel插件模式之UDP模式&#xff0…

(十四)【Jmeter】线程(Threads(Users))之开放模型线程组(Open Model Thread Group)

简述 操作路径如下: 开放模型线程组(Open Model Thread Group) 是 JMeter 5.5 版本中引入的一个新特性,它允许用户创建具有可变负载的负载配置文件。相较于传统的线程组,开放模型线程组提供了更多的灵活性和动态调整的能力。 优点: 灵活性:允许测试人员根据测试需求动…

C++-opencv的imread、imshow、waitkey、namedWindow

在C中使用OpenCV时&#xff0c;imread和imshow是两个非常基础且常用的函数&#xff0c;用于读取图像和显示图像。以下是这两个函数的简要说明和如何一起使用它们的示例。 imread函数 imread用于从指定的文件路径读取图像。它将图像读入为cv::Mat对象&#xff0c;这是OpenCV中…

如何在群辉7.2中使用Docker搭建容器魔方服务并远程访问【内网穿透】

文章目录 1. 拉取容器魔方镜像2. 运行容器魔方3. 本地访问容器魔方4. 群辉安装Cpolar5. 配置容器魔方远程地址6. 远程访问测试7. 固定公网地址 本文主要介绍如何在群辉7.2版本中使用Docker安装容器魔方&#xff0c;并结合Cpolar内网穿透工具实现远程访问本地网心云容器魔方界面…

新书速览|细说PyTorch深度学习:理论、算法、模型与编程实现

超详细的PyTorch深度学习入门书&#xff0c;100余个编程示例6大热点案例&#xff0c;大咖带路&#xff0c;边学边实践。 本书特点&#xff1a; 1. 专家编撰&#xff1a;由资深专家精心编撰&#xff0c;通俗易懂&#xff0c;娓娓道来 2&#xff0e;范例丰富&#xff1a;100余个…

unity学习(34)——角色选取界面(跨场景坑多)

先把SelectMenu中的camera的audio listener去掉。 现在还是平面&#xff0c;直接在camera下面添加两个panel即可&#xff0c;应该是用不到canvas了&#xff0c;都是2D的UI。 加完以后问题来了&#xff0c;角色选择界面的按钮跑到主界面上边了&#xff0c;而且现在账号密码都输…

【SQL注入】靶场SQLI DUMB SERIES-26空格和注释被过滤

26题提示所有的空格和注释都会被过滤掉 输入?id0判断闭合方式&#xff0c;回显报错可以确定闭合方式为单引号 正常思路是需要通过注释符将后面的语句注释掉&#xff0c;但是这一关的注释符被过滤了&#xff0c;可以考虑使用将后面的语句也闭合的思路来避免引号带来的报错。输…

YOLOv9来了! 使用可编程梯度信息学习你想学的内容, v7作者新作!【文献速读】

YOLOv9文献速读&#xff0c;本文章使用 GPT 4.0 和 Ai PDF 工具完成。 文章地址&#xff1a;https://arxiv.org/pdf/2402.13616.pdf 文章目录 文章简介有哪些相关研究&#xff1f;如何归类&#xff1f;谁是这一课题在领域内值得关注的研究员&#xff1f;论文试图解决什么问题&a…

flutter sliver 多种滚动组合开发指南

flutter sliver 多种滚动组合开发指南 视频 https://youtu.be/4mho1kZ_YQU https://www.bilibili.com/video/BV1WW4y1d7ZC/ 前言 有不少同学工作中遇到需要把几个不同滚动行为组件&#xff08;顶部 appBar、内容固定块、tabBar 切换、tabBarView视图、自适应高度、横向滚动&a…

rtsp推拉流

1.搭建视频服务器 smart-rtmpd: smart_rtmpd 是一款 rtmp、rtsp 服务器&#xff0c;非常好用&#xff0c;解压既运行&#xff0c;支持跨平台&#xff0c;无任何依赖&#xff0c;性能和 SRS 相比不分上下 2.推拉流 下载windows版本ffmpeg,并设置环境变量. 推流 ffmpeg -re -st…

uniapp h5(公众号)微信授权登录

uniapp 如果是按钮登录做一个按钮就好了 如果不是按钮登录 就将代码放在onloadl里面即可 授权登录页面 授权按钮 <button class"wechat-logo" click"getWeChatCode">微信授权登录</button>js代码 <script> export default {data() {re…