Web安全系列——CSRF攻击

文章首发公众号: 海天二路搬砖工

前言

CSRF 攻击是Web应用中最常见的攻击方式之一。

CSRF攻击给网站身份验证、用户账户和个人隐私带来极大威胁。了解 CSRF 攻击的流程、原理与防御措施,是构建安全可靠的Web应用程序的必要条件。

什么是CSRF攻击

CSRF,全称是Cross-Site Request Forgery,中文名为跨站请求伪造。

CSRF攻击是指指恶意攻击者利用用户已经登录了另一个网站的“身份”来伪造用户的请求(例如提交一个表单)。

CSRF攻击的流程与原理

CSRF攻击的流程与原理如下图所示

CSRF攻击流程

  • 首先,受害人访问正常站点aa.com,并生成了登录态(以cookie等方式存储在浏览器中)
  • 接着,受害人访问攻击者刻意构造的看似无害的站点bb.com,bb.com中的恶意页面在加载时会像aa.com发起恶意请求
  • 由于处在同一浏览器中,攻击者可以直接使用aa.com的cookie(登录态)

CSRF 攻击的危害:

CSRF 攻击通常会对 Web 应用程序和用户造成严重威胁和不良影响:

  • **窃取敏感信息:**攻击者可能利用 CSRF 攻击来窃取用户的敏感个人信息,例如身份证号码、收入、税务纪录等。
  • **窃取个人或机构账户:**通过 CSRF 攻击,攻击者可能会利用已经验证过的认证信息,从用户的账户中取走资金、转移资金或在用户知情的情况下进行消费等行为。
  • **篡改记录:**CSRF 攻击也可能会利用用户的身份执行各种不良行为,例如更改记录、删除条目或篡改信息等。从而导致数据损失和信息可用性受损,特别是对某些爱好者、研究员或初创公司来说,其数据是极其重要的。
  • **拒绝服务攻击:**攻击者通过 CSRF 攻击向目标服务器发送大量的恶意请求,使服务器处理过载,从而使其变得不可用,拒绝服务。
  • **破坏用户信任:**当 CSRF 攻击成功时,很可能会导致用户对受攻击之后的 Web 应用程序产生不信任感。这可能会迫使他们停止使用被攻击的网站,这可能会给企业造成巨大的经济损失和声誉影响。

如何防御 CSRF 攻击:

  • **使用POST请求:**使用GET HTTP 方法会更容易受到攻击,因此可以使用 POST 或其他安全的 HTTP 方法。
  • **用户身份验证:**将用户身份验证放在敏感操作之前,这可以增加攻击者窃取用户身份验证 token 的难度。
  • **检查来源站点:**检查 Web 请求是来自已知的和可信的站点。开发者可以检查请求的来源(Referrer)以及请求的主机(Origin 或者 Host),以确保请求是合法的。
  • **使用 CSRF Token:**为表单和其他交互设定随机令牌,称为 CSRF 中的 Token,在请求提交时一并提交 Token,如此服务器可根据Token验证请求的合法性。
  • **防止 third-party cookies:**禁止第三方 cookie 将 cookie 从一个子域传递到另一个子域以防止攻击者获取凭据。
  • **SameSite cookies:**把 cookie 属性设置为SameSite,以防止跨站点 cookie 变成 CSRF 攻击的最佳攻击向量之一。
  • **使用 CSP:**CSP 能够指定页面的某些部分从哪些资源进行加载。这样,即使攻击者成功注入了第三方脚本或 iFrame,浏览器也将拒绝加载并执行脚本。

CSRF 与XSS攻击对比

初学者经常将CSRF攻击和XSS攻击搞混,这里将这两者进行简单对比

CSRFXSS
攻击方式利用受害者身份凭证进行非法操作利用网页编码不健壮所造成的网页漏洞
攻击目标受害者的身份认证利用受害者自身的浏览器漏洞,实现身份窃取、数据篡改等目的
攻击流程先让受害者在已经通过身份验证的网站中打开伪造的页面,然后伪造的页面(例如藏在图片中的链接)会发起网络请求进行攻击在用户的输入中注入恶意脚本,通常是 JavaScript,然后在用户访问包含了这些恶意代码的网站时,这些代码就会在用户的浏览器上执行

总结

CSRF 攻击是互联网世界中的常见安全威胁之一,攻击者通过借用用户身份验证,从而可以执行任意的操作并且不经过用户的认可。为了保护网站与用户的安全,开发人员和用户都应了解 CSRF 攻击并采取一系列预防和防御措施,包括使用合适的随机令牌,设置 SameSite cookies、定期检测、使用防火墙等。

附录

我的公众号

  • 我的二维码

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

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

相关文章

Python框架之Flask入门和视图

一、Flask入门和视图 需要安装Pycharm专业版 1. Flask简介 Python后端的2个主流框架 Flask 轻量级框架Django 重型框架 Flask是一个基于Python实现的web开发微框架 官方文档:https://flask.palletsprojects.com/ 中文文档:https://dormousehole.readthe…

dbeaver查看表,解决证书报错current license is non-compliant for [jdbc]

http://localhost:9200/_license { “license” : { “status” : “active”, “uid” : “b91ae0e0-b04d-4e20-8730-cf0bca7b2035”, “type” : “basic”, “issue_date” : “2023-02-22T14:33:27.648Z”, “issue_date_in_millis” : 1677076407648, “max_nodes” : 10…

在线数据库关系图设计工具,选Itbuilder

一旦数据库超出了人类可消化的大小,使用关系图工具来辅助其设计就变得至关重要。创建数据库听起来像是一个复杂的过程,但使用现代数据库图表工具,情况并非如此。 itbuilder在线数据库设计工具使用户可以创建和导入数据库关系图以查看数据库对…

Android APT的使用

Apt 介绍 APT(Annotation Processing Tool)是一种处理注释的工具,它对源代码文件进行检测找出其中的 Annotation,根据注解自动生成代码。 Annotation 处理器在处理 Annotation 时可以根据源文件中的 Annotation 生成额外的源文件和其它的文件(文件具体内容由 Annot…

Xshell复制粘贴(Ctrl+C,Ctrl+V)配置

文章目录 Xshell复制粘贴(CtrlC,CtrlV)配置一、复制二、粘贴 Xshell复制粘贴(CtrlC,CtrlV)配置 在使用Windows一般使用ctrlc,ctrv实现粘贴复制,通过Xshell连接Linux时,可…

十九、类型信息(5)

动态代理 _代理_是基本的设计模式之一。一个对象封装真实对象,代替其提供其他或不同的操作—这些操作通常涉及到与“真实”对象的通信,因此代理通常充当中间对象。这是一个简单的示例,显示代理的结构: interface Interface {voi…

泡泡玛特MOLLY携手支付宝蚂蚁庄园 深耕乡村儿童美育教育

近日,泡泡玛特旗下IP MOLLY携手支付宝蚂蚁庄园、中国乡村发展基金会共同发起“一笔一画,梦想成真”主题活动,主题活动在蚂蚁庄园平台开展,为泡泡玛特的人气IP MOLLY打造专属庄园,同时联合发布公益IP形象,公…

网络套接字编程(二)

网络套接字编程(二) 文章目录 网络套接字编程(二)简易TCP网络程序服务端创建套接字服务端绑定IP地址和端口号服务端监听服务端运行服务端网络服务服务端启动客户端创建套接字客户端的绑定和监听问题客户端建立连接并通信客户端启动程序测试单执行流服务器的弊端 多进程版TCP网络…

Windows 开启 Kerberos 的火狐 Firefox 浏览器访问yarn、hdfs

背景:类型为IPA或者MIT KDC,windows目前只支持 firefoxMIT Kerberos客户端的形式,其他windows端浏览器IE、chrome、edge,没有办法去调用MIT Kerberos Windows客户端的GSSAPI验证方式,所以均无法使用 Windows 开启 Kerb…

Spring底层原理(四)

Spring底层原理(四) 本章内容 模拟实现Spring中的几个常见BeanFactory后置处理器 常见的BeanFactory后置处理器 GenericApplicationContext context new GenericApplicationContext(); context.registerBean("config",Config.class); context.registerBean(Conf…

树结构及其算法-二叉树节点的插入

目录 树结构及其算法-二叉树节点的插入 C代码 树结构及其算法-二叉树节点的插入 二叉树节点插入的情况和查找相似,重点是插入后仍要保持二叉查找树的特性。如果插入的节点已经在二叉树中,就没有插入的必要了,如果插入的值不在二叉树中&…

新工业革命?基于机器视觉技术分拣机器人的未来与发展

原创 | 文 BFT机器人 01 分拣机器人的应用 基于机器视觉技术的分拣机器人可以将工人从繁重的劳动中解放出来,大大提高了分拣的效率,因此被广泛地应用于食品、物流以及煤矿等多个行业。 1.1 分拣机器人在水果分拣中的应用 随着农业科技的发展和人民生活…