关于CSRF的问题

2024-06-18

在 cookie 中使用信号身份验证令牌进行身份验证是否安全(通过 ajax 仅发布和请求 json)?

为什么攻击者无法获取隐藏字段中的表单令牌?

攻击者如何通过 POST 请求进行 CSRF 攻击?


在 cookie 中使用单个令牌进行身份验证是否安全?

某种程度上,如果该 cookie 仅限 HTTP(这有助于防止 XSS)和 SSL,那么您网站之外的任何人都无法读取该 cookie。

但是,用户的浏览器可以保留该 cookie,并在其浏览器再次从您的应用程序请求页面时自动发送该 cookie。当用户浏览您的网站时,这是需要的,而且也是可能发生 CSRF 攻击的原因。

为什么攻击者无法获取隐藏字段中的表单令牌?

在 CSRF 攻击中,黑客实际上无法读取您的网站或 cookie,因为它应该受到 SSL/HTTPS 的保护。 CSRF 的工作原理是欺骗您的浏览器将其数据与您的安全数据一起发送到您的站点。

因此,隐藏字段中的值是针对 CSRF 的默认防御的一部分 - 它们在 cookie 中有一个秘密值(黑客可以欺骗浏览器重新发送,但无法查看或编辑),并且在加密页面中的隐藏输入字段(黑客无法访问)。如果 cookie 和隐藏值不匹配,那么您就遭受了 CSRF 攻击。

攻击者如何通过POST请求进行CSRF攻击?

好的,假设您有一个安全的网站。您可以使用 SSL 登录此站点,然后您将获得一个仅 HTTP SSL 身份验证 cookie,使您保持登录状态。

现在我在一个完全不同的网站上有了一个新页面。如果我从我的网站链接到您的网站,那么当您单击该链接时,它将离开我的网站并转到您的网站,并传递您的 cookie。

如果我添加一个 HTML<form>在我的发布回您网站的页面上,也会发生同样的事情:浏览器返回您的网站并发送表单中的所有数据以及您的 cookie。

请注意,我没有读取您的 cookie 或您网站上的任何页面,因为两者都受到 SSL 加密的保护。

为了获得完整的效果,我可以在页面上隐藏该表单,以便用户甚至不会意识到他们正在发回您的网站。

一个简单的例子是 Facebook 上的“点赞”功能 - 我想他们现在已经修补了这个功能,但有一段时间我可以欺骗您的浏览器(无需访问您的详细信息)将您的身份验证 cookie 发送到表示您的 Facebook 操作就像我想让你做的事情一样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于CSRF的问题 的相关文章

  • Django:禁止(未设置 CSRF cookie。)

    我遇到了 CSRF cookie 未设置 的问题 我所需要的只是外部计费平台将更新发送到 django 服务器 在本地它可以与 Postman 一起使用 但在演示服务器中它不起作用 Code views py from django vie
  • Django CSRF 框架有很多失败

    我的站点上的 CSRF Django 中间件 来自 SVN trunk 的版本 出现了很多失败 我得到的唯一错误是 CSRF 失败 原因 CSRF 令牌丢失或不正确 我如何诊断这些 CSRF 错误来自何处 我自己无法导致 CSRF 错误 但
  • Spring security中每个请求不同的csrf令牌

    我在用
  • 如何在 Phoenix 框架中有选择地禁用 CSRF 检查

    我正在尝试创建一个指向我的网站的 Facebook 页面选项卡 Facebook 向我网站的 url 发送 HTTP POST 请求 这里的问题是服务器有内置的 CSRF 检查 它返回以下错误 Plug CSRFProtection Inv
  • 使用 MVC2 的 AJAX 请求中的 CSRF 保护

    我正在构建的页面很大程度上依赖于 AJAX 基本上 只有一个 页面 并且每次数据传输都是通过 AJAX 处理的 由于浏览器端过度乐观的缓存会导致奇怪的问题 数据未重新加载 因此我必须使用 POST 执行所有请求 也读取 这会强制重新加载 现
  • 将 csrf 令牌存储在元标记中是一个好习惯吗?

    如果我在不使用表单的情况下发出 POST 请求 并且想要防止 CSRF 攻击 我可以做的就是在元标记中设置 csrf token 并在触发请求时将其放回标头 这是一个好的做法吗 通过 header 将令牌放回 例如使用 JQuery aja
  • 请澄清:带有 CSRF 的 Jenkins REST API 需要 user:PASSWORD 的碎屑,但不需要 user:API_TOKEN 的碎屑?

    我发现与启用 CSRF 保护 https wiki jenkins io display JENKINS Remote access API RemoteaccessAPI CSRFProtection 我可以发出带有 crumbs hea
  • 姜戈 - 403 禁止。 CSRF 令牌缺失或不正确

    我尝试为我的模型添加 ModelForm 但每次 POST 尝试都以 403 Forbidden CSRF 验证失败 请求中止 失败原因给出 CSRF 令牌丢失或不正确 结束 我没有 render to response 方法 因此无法通过
  • 设置配置项 (csrf) 在 Codeigniter 中不起作用

    我只想在我的几个控制器中打开 csrf 保护 所以我有 function construct parent construct this gt load gt library form validation this gt load gt
  • Magento CSRF 保护

    我正在 Magento 中查看自定义表单 我看到了这些教程 http fastdivision com 2012 03 29 diy magento create ajax login registration forms for your
  • 为 Blazor UI 应用程序实施防伪验证

    我们的应用程序是使用 Blazor Server 和与 Azure API 通信的 razor 页面构建的 我想知道对于 Blazor UI 我们是否应该实现防伪造 CSRF XSRF 如果可以 我可以获得一些如何实现的信息吗 我观察到为
  • 切换到负载均衡器后,django 帖子收到 CSRF 验证失败

    我有一个有效的登录模板 可以发布帖子 如下所示
  • ASP.NET MVC - ValidateAntiForgeryToken 过期

    在网页中 我们提供一个超链接 GET 用户可以单击该超链接进行身份验证 Html ActionLink Please Login MyMethod MyController 这映射到以下返回视图的控制器方法 RequireHttps pub
  • Cakephp - CSRF 令牌不匹配

    我在 Cakephp 3 6 中有一个项目 其中 MessageController 中的 3 个操作由 Ajax 调用 但是 我有一个问题 当我向其中一个操作发送请求时 XHR 会向我返回以下内容 message CSRF token m
  • Django Rest Framework 删除 csrf

    我知道有关于 Django Rest Framework 的答案 但我找不到解决我的问题的方法 我有一个具有身份验证和一些功能的应用程序 我向其中添加了一个新应用程序 它使用 Django Rest Framework 我只想在这个应用程序
  • 保护基于prototype.js的XHR请求免受CSRF攻击

    Django 已经更新到 1 3 事实上从 1 2 5 开始 它就扩展了该方案 将跨站请求伪造保护令牌传递给 XMLHttpRequests Django 人员提供了帮助jQuery 的一个例子 http docs djangoprojec
  • 使用 PHPcurl 和 CSRF 令牌登录

    我想从 PHP 脚本登录到另一个网站 但我总是收到这样的回复 403 Error CSRF token mismatch 我从网站上的隐藏字段中提取了 CSRF 令牌 但它似乎是错误的 这是我的代码 username testuser pa
  • Django的注释框架和CSRF

    据我了解 Django的评论框架 https docs djangoproject com en 1 4 ref contrib comments 专为匿名公众评论而设计 就像您通常在博客或文章下面看到的那样 换句话说 任何人都可以发表评论
  • 如何使用 PHP 正确添加跨站请求伪造 (CSRF) 令牌

    我正在尝试为我网站上的表单添加一些安全性 其中一个表单使用 AJAX 另一个表单是简单的 联系我们 表单 我正在尝试添加 CSRF 令牌 我遇到的问题是令牌有时只显示在 HTML 值 中 其余时间 该值为空 这是我在 AJAX 表单上使用的
  • Next.js 身份验证策略

    我一直在尝试为 Next js 项目实现可靠的身份验证流程 但现在我完全迷失了 我已经看过 Next js 的示例存储库 但我对完整的解决方案有很多疑问 我有一个express js API 和一个单独的Next js 前端项目 所有数据和

随机推荐

  • 如何防止打印屏幕

    我有一个要求 我正在开发的应用程序阻止用户轻松捕获屏幕内容 我已经表示 没有可行的方法可以完全防止这种情况发生 但我正在寻找方法来为这一过程引入一些障碍 我正在使用 C NET 2 0 和 WinForms 你不能 您能做的最好的事情就是在
  • PHP Amazon SDK,S3 存储桶访问被拒绝

    我第一次尝试使用 PHP AWS SDK aws aws sdk php 3 19 来使用 S3 我创建了一个存储桶 myfirstbucket jeremyc 我制定了一项政策 Version 2012 10 17 Statement E
  • BlockingCollection.Dispose 实际上做了什么?

    BlockingCollection Dispose 实际上做了什么 这允许正确处理内部等待句柄 BlockingCollection
  • Spring Boot 中的外部化配置,多个应用程序在同一容器中运行

    我正在构建多个 Spring Boot 应用程序 这些应用程序将部署在同一个 servlet 容器上 但我很难让 Spring Boot 按照我想要的方式使用外部化配置文件 而不是像框架想要的那样 情况 多个 Spring Boot 应用程
  • Android Studio 上的 Twitter Kit Fabric Android 模块库

    我在使用适用于 Android 的 Twitter Kit SDK 时遇到问题 我需要将 Twitter Kit SDK 导入到我的项目中的库 模块 我正在使用 Android Studio 我正在使用适用于 Android 的 Fabri
  • PHP - 获取类公共变量?

    请考虑下面的代码 class A public function construct class B extends A public a a public b b public c c 如何从父类中获取 B 类的公共变量而不确切知道它们是
  • 什么是 Makefile.am 和 Makefile.in?

    这两个文件多出现在开源项目中 它们的用途是什么 它们如何工作 Makefile am是程序员定义的文件 由automake生成Makefile in文件 am代表autom阿克 这configure通常在源 tarball 中看到的脚本将使
  • 具有多种布局的 React Router v4

    我想在我的公共布局中渲染一些路线 并在我的私人布局中渲染一些其他路线 有没有一种干净的方法可以做到这一点 显然不起作用的示例 但我希望大致解释我正在寻找的内容
  • 在 Repository 类中观察 Forever 是一个好习惯吗?数据库+网络分页列表

    我正在按照架构指南构建应用程序 实现了房间数据库缓存 网络 需要从单独的实体获取最新页码 我的型号 Entity tableName top rated movie page public class Top Rated Movies Pa
  • 使用 Apache Spark 读取 JSON - `corrupt_record`

    我有一个json file nodes看起来像这样 toid osgb4000000031043205 point 508180 748 195333 973 index 1 toid osgb4000000031043206 point
  • 在 Nestjs 的我的模块中导入另一个模块的存储库

    我正在尝试使用 Nestjs 构建一个应用程序 目前我有两个模块 用户和身份验证 其结构如下 我需要注射用户服务 into 认证服务为了与User实体 所以首先我注入了用户存储库 into 用户服务并导出服务 用户 模块 ts import
  • SolrNet:尝试添加和提交时 SolrConnectionException (400) 错误请求

    我已经到了 SolrNet 执行 Add 方法的地步 但是当我尝试 Commit 时 我收到了错误 以下是我的 schema xml 模型 调用它的代码以及我得到的错误 更奇怪的是 尽管出现错误 但在我重新启动 Tomcat 后 该模型仍会
  • MFENCE/SFENCE/etc“序列化内存但不序列化指令执行”?

    英特尔系统编程指南第 8 3 节中有关 MFENCE SFENCE LFENCE 的说明 以下指令是内存排序指令 而不是序列化指令 这些指令会耗尽数据内存子系统 它们不序列化指令执行流 我试图弄清楚为什么这很重要 在多线程代码中 对内存的写
  • DI Control-Freak 反模式:难以理解

    我正在阅读 Mark Seemann 写的 NET 中的依赖注入 但我无论如何也无法理解这一点 虽然new当涉及到 VOLATILE 时 关键字是一种代码味道 依赖性 您无需担心将其用于稳定 依赖性 这new一般来说 关键字不会突然变得 非
  • 线性空白到底是什么? (LWS/LWSP)

    我看到提到了这个术语 还有 CRLF CR LF CTL 控制字符 和 SP 空格 如果它不是常规的内联空格 那么它是什么字符 From STD68 语法规范的增强 BNF ABNF http www rfc editor org std
  • 如何在 django-rest-framework 查询集响应中添加注释数据?

    我正在为查询集中的每个项目生成聚合 def get queryset self from django db models import Count queryset Book objects annotate Count authors
  • MPMediaItemPropertyAssetURL 仅针对 iPhone 5s 返回 null

    我一直在使用以下代码从 MPMediaItemPickerController 返回的 MPMediaItem 对象中提取资产 url 以便我可以将音乐文件从用户 iPhone itunes 音乐库复制到文档文件夹进行处理 但在 iPhon
  • 将密度曲线拟合到 R 中的直方图

    R中有没有可以将曲线拟合到直方图的函数 假设您有以下直方图 hist c rep 65 times 5 rep 25 times 5 rep 35 times 10 rep 45 times 4 看上去很正常 但其实是歪曲的 我想拟合一条倾
  • React:在哪里扩展对象原型

    我使用创建了一个纯 React 应用程序创建反应应用程序 https github com facebookincubator create react app 我想延长String类并在一个或多个组件中使用它 例如 String prot
  • 关于CSRF的问题

    在 cookie 中使用信号身份验证令牌进行身份验证是否安全 通过 ajax 仅发布和请求 json 为什么攻击者无法获取隐藏字段中的表单令牌 攻击者如何通过 POST 请求进行 CSRF 攻击 在 cookie 中使用单个令牌进行身份验证