GET 链接的 CSRF 保护

2023-12-31

我需要向 Web 应用程序添加 CSRF 保护。

问题在于,该应用程序严重依赖链接(即 GET 请求)来对数据库进行更改。

链接是使用类生成的,因此我可以轻松地为每个链接添加 CSRF 令牌的额外参数。

但是,我知道 GET 请求中的 CSRF 令牌可能不是足够好的保护。

请注意,该应用程序只能通过 HTTPS 访问,因此 GET 参数在客户端/服务器通信期间无法公开/被盗(但历史记录窃取问题仍然存在)。

在此设置中 GET CSRF 令牌参数是否可以被认为“足够安全”?

如果不是,解决这个问题的最佳方法是什么?我唯一想到的就是将每个链接包装到一个表单中(显式地以太坊,或者使用 JavaScript 创建 onSubmit 表单)。


为了能够读取对 CSRF 攻击请求的响应,攻击者需要让受害者执行他的 JavaScript 代码。因此,“GET”请求的 CSRF 几乎没有用。假设您遵循“GET”请求不应修改任何数据的标准,并且仅需要使用“POST”来完成任何修改

  1. 使用基于 cookie 的身份验证和 SSL 应该可以让您远离试图更改参数的人
  2. 您可能需要引入一些基于时间戳的签名以避免重放攻击

也就是说,如果您有任何 POST 请求,您应该考虑 CSRF 保护。

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

GET 链接的 CSRF 保护 的相关文章

  • spring security 3.2.0 csrf 令牌在 freemarker 模板中不起作用

    升级到 Spring Security 3 2 0 并配置 xml 后 csrf 令牌不起作用 基本原理 春季4 0 1 春季安全3 2 0 Freemarker 模板语言 步骤1 spring security xml配置
  • 为什么应该将 CSRF 令牌放入 JWT 令牌中?

    我想对 JWT 代币和 CSRF 提出疑问风暴之路帖子 https stormpath com blog where to store your jwts cookies vs html5 web storage 解释了将 JWT 存储在
  • 每个请求是否有新的 CSRF 令牌?

    因此 我正在阅读周围的内容 并且对拥有 CSRF 令牌感到非常困惑 无论我应该为每个请求生成一个新令牌 还是每小时生成一个新令牌还是其他什么 data token md5 uniqid rand true SESSION token dat
  • 如何将 CSRF 令牌从服务器传递到客户端?

    这听起来可能是一个愚蠢的问题 我想澄清这一点 如果首先将令牌发送给客户端并且客户端发回相同的令牌 csrf 令牌如何帮助识别跨站请求 恶意客户端不会得到服务器的响应吗 如果我们在发送令牌时检查来源 那么令牌检查的事情是不是显得多余 我们如何
  • 检测到跨站请求伪造 (CSRF) 时应发回什么响应

    当检测到跨站请求伪造 CSRF 时 我应该发回什么响应 有一个我无法获取的扫描工具 它说我的一个页面没有受到保护CSRF 但它是 我发回的回复是正常的202带有句子 请求无法处理 就是这样 没有任何信息被发送回攻击者 并且我记录了这次尝试
  • 一个令牌与多个令牌防止 CSRF 攻击

    我正在使用 Codeigniter 我想防止可能发生的 CSRF 攻击尝试 为了实现这一目标 我向我想要保护的每个表单添加一个带有随机令牌的隐藏输入标记 同时我将此令牌保留在会话中 以便在开始处理此表单数据时进行比较 set a token
  • 在 Ionic 应用程序中一起使用 CORS 和 CSRF

    我正在开发一个 Android 应用程序 使用离子框架 http ionicframework com 基于我开发的 AngularJS 网站Jhipster https jhipster github io 由于我的 Web 应用程序中已
  • 为什么 Rails 给出“无法验证 CSRF 令牌真实性”错误?

    我在 Rails 生产中收到 无法验证 CSRF 令牌真实性 的消息 我的问题是 它为什么要这样做 我该如何修复它 这是我的 Heroku 日志 一些值已匿名 2016 02 13T01 18 54 118956 00 00 heroku
  • CORS 中的 POST/GET 与 PUT/DELETE

    我刚刚读过this https www w3 org Security wiki Same Origin Policy 同源策略允许使用 GET 和 POST 的跨源 HTTP 请求 方法 但拒绝源间 PUT 和 DELETE 请求 PUT
  • 如何在Reactjs中生成CSRF令牌并发送到Play框架?

    我试图从反应表单发送发布请求到播放框架 它抛出以下错误 Caused by java lang RuntimeException No CSRF token was generated for this request Is the CSR
  • 唯一的表单令牌禁用用户的多任务处理

    如果我想保护我的网站和用户免受跨站伪造 CSRF 攻击 我可以生成一个唯一的令牌 token md5 time rand on 每一页有一个形式 令牌在隐藏的输入字段中提交echo
  • Symfony 2 - 删除表单和 CSRF 令牌

    我有一个来自数据库的条目列表 我希望在每一行的末尾都有一个 删除按钮 这样用户就不必先转到编辑 显示页面来删除条目 我尝试使用 csrf 令牌创建一个隐藏的输入字段 如下所示 return this gt createFormBuilder
  • 反 CSRF cookie?

    我正在构建一个大量使用ajax 的应用程序 大多数反 CSRF 解决方案都围绕将一些信息放入视图状态并在发布时处理该数据 但是 我无权访问 ajax 调用中的视图状态 我计划生成一个 GUID 以在 cookie 和会话状态中插入令牌 使
  • RESTful 应用程序中的 XSRF

    我是一名 ASP NET 开发人员 正在尝试学习 Rails 和 RESTful 方法 为了理解这一点 我计划编写一个电子邮件客户端 它会对服务器进行 RESTful GET 调用以获取电子邮件 并通过 POST 调用来发送电子邮件 要遵循
  • 为 Blazor UI 应用程序实施防伪验证

    我们的应用程序是使用 Blazor Server 和与 Azure API 通信的 razor 页面构建的 我想知道对于 Blazor UI 我们是否应该实现防伪造 CSRF XSRF 如果可以 我可以获得一些如何实现的信息吗 我观察到为
  • Ruby on Rails Devise Oauth-facebook OmniAuth::Strategies::OAuth2::CallbackError

    我使用 facebook 实现 oauth 登录并设计 当从接受应用程序 弹出窗口 返回时 我收到以下错误 由于 检测到 Csrf 无法通过 Facebook 验证您的身份 这是日志 于 2014 01 23 23 59 58 0100 开
  • ASP.NET MVC - ValidateAntiForgeryToken 过期

    在网页中 我们提供一个超链接 GET 用户可以单击该超链接进行身份验证 Html ActionLink Please Login MyMethod MyController 这映射到以下返回视图的控制器方法 RequireHttps pub
  • 如何检测CSRF漏洞[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定一个网站 如何检测潜在的 CSRF 漏洞 提前致谢 这是一个CSRF https www owasp org index php
  • 标头和 cookie 中的 CSRF 令牌在请求中不匹配

    我正在实现一个无状态 API 我的组织表示我需要防止 CSRF 攻击 我在网上找到了这个人的解决方案 并决定尝试实施仅客户端的方法 http blog jdriven com 2014 10 stateless spring securit
  • Flask 中“缺少 CSRF 令牌”,但它在模板中呈现

    问题 当我尝试登录 使用 Flask login 时 我得到Bad Request The CSRF session token is missing但令牌正在呈现 在模板中 secret key 已设置 并且我在本地运行localhost

随机推荐

  • Java - CompletableFutures - 如果出现异常,我如何取消所有期货

    我有一个方法 包括在下面 来返回列表的值CompletableFutures 该方法应该 能够在给定时间后超时 如果有超过n个例外 能够取消所有期货 第一点效果很好 但在超过超时限制后确实失败了 我还需要打电话exectuorService
  • 在这种情况下抛出什么类型的异常?

    我正在编写一个 C 应用程序 它使用自动化来控制另一个程序 当然 该程序必须运行才能使我的程序正常工作 当我的程序查找应用程序但找不到它时 我想抛出异常 当然 现在我可以尝试打开应用程序 或者告诉用户打开它 或者 我应该实现自定义异常 还是
  • 让 is_purchasable 挂钩也适用于 Woocommerce 产品变体

    我创建了 2 个自定义产品字段 可用性 从何时 到何时 因此 如果当前日期在这些设定的可用日期之间 则产品是可购买的 否则 则不可购买 一切都很完美 但只有在我发布具有变化的产品之前 然后 就像产品变体忽略这些自定义可用性字段 值一样 即使
  • 使用实体框架实体作为业务对象?

    我使用 Microsoft 的实体框架 O R 映射器 并使用实体类 映射到数据库对象的生成类 作为业务对象 这个可以吗 请说出你的缺点或优点 在业务层和表示之间进行 WCF 通信的情况下该怎么办 如何将这些对象作为数据成员发送 首先 在撰
  • 如何重置 API 权限 Microsoft Graph

    我正在使用 Microsoft Graph 开发一些东西 起初 只给予一些许可 但我发现这还不够 我添加了更多权限 但似乎不起作用 因为我登录后 授权网出不来 我正在按照步骤操作使用 Microsoft Graph 我正在使用 ADv1 我
  • 如何使用现有的登录 Chrome 用户配置文件正确设置 VS Code 以在 Chrome 中进行调试?

    我有一个用 VS Code 编写的 React 应用程序 为了测试和调试我的工作 我进入终端并输入npm start 这将启动应用程序服务器 并在当前登录用户下正确启动 chrome 该用户已安装 React Devtools 扩展 不过
  • 如何在 CodeIgniter 中上传多个图像并进行验证

    我正在尝试上传多张经过验证的图像 但无法执行此操作 我的查看代码如下 ul li Category Image li ul
  • 除非我强制转换返回变量,否则对静态扩展方法进行存根似乎可以在 Rhino Mocks 中工作。为什么?

    我可以使用 Rhino Mocks 存根静态扩展方法 但如果我将返回值转换为另一种类型 则会收到错误 为什么 using Rhino Mocks public interface INumberGenerator double GetDou
  • Xcode 9 模拟器上的 Google 地图在移动地图时使用超过 100% 的 CPU

    因此 我现在已将我的项目转换为在 Xcode 9 中使用 Swift 4 并开始测试我的应用程序 这是一个大型应用程序 有四个不同的选项卡 几乎所有内容都按预期运行 其中一个选项卡是地图 使用 GoogleMaps 我从来没有遇到过任何问题
  • Gradle Ear 使用当前 WAR 文件名更新 application.xml

    我有一个 java EAR 项目 其中包含一些 WAR Web 应用程序 我正在使用 gradle 构建 EAR 文件 uberApp gt WarA
  • #<#:0x007fe3546d58f0> 的未定义方法 `posts_path'

    我是 Rails 新手 收到此错误 undefined method posts path for lt
  • Outlook - 根据收件人插入文本

    我需要根据收件人自动将文本插入到外发电子邮件中 我在另一个问题 归功于 76Mel 的答案中发现了一些看起来很有希望的代码 看来我可以将代码附加到 ThisOutlookSession 中的 ItemSend Private Sub App
  • Discord.py 无法获取证书

    我是否必须在系统内安装 生成 下载新证书 或者我是否可以以某种方式禁用 python 内的证书 ubuntu 18 python 3 7 discord py latest INFO 2019 03 05 22 58 02 Initiali
  • 如何在角度js中显示依赖选择框选项[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个表单 我想要两个选择框 以便其中一个选择框的某些选项将根据另一个选择框的当前值显示 隐藏 e g Select
  • 在基本图形的绘图区域之外绘制图例?

    正如标题所说 使用基础图形时如何在绘图区域之外绘制图例 我想过摆弄layout并生成一个仅包含图例的空图 但我对仅使用基本图形设施的方式感兴趣 例如 par mar 在图例的右侧留出一些空间来放置图例 这里有一个例子 plot 1 3 rn
  • 我应该停止使用抽象基类/接口,而是使用 boost::function/std::function 吗?

    我刚刚了解了 std function 的真正含义以及它的用途 我有一个问题 现在我们基本上有了委托 我们应该在何时何地使用抽象基类 以及何时应该实现通过 std function 对象提供给泛型类的多态性 ABC在C 11中是否受到致命打
  • 双重调度和替代方案

    我正在努力寻找更好的方法来处理一些成长if构造来处理不同类型的类 这些类最终是不同值类型 int DateTime 等 的包装器 并带有一些附加状态信息 因此 这些类之间的主要区别在于它们包含的数据类型 虽然它们实现了泛型接口 但它们也需要
  • 如何在浏览器中跨页面保留 Cognito 身份

    我使用开发人员经过身份验证的身份通过客户端浏览器上的 Cognito 进行身份验证 当我的页面加载 或刷新 时 我希望我的应用程序能够记住身份 只要对象没有过期 我认为它会持续大约一个小时 但是 我不知道如何从 Cognito 检索身份 而
  • 为什么 chown 在 Dockerfile 中不起作用? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的 Dockerfile 创建一个目录 对其进行 chown 然后列出该目录 该目录仍归 root 所有 这是为什么 这是 Docker
  • GET 链接的 CSRF 保护

    我需要向 Web 应用程序添加 CSRF 保护 问题在于 该应用程序严重依赖链接 即 GET 请求 来对数据库进行更改 链接是使用类生成的 因此我可以轻松地为每个链接添加 CSRF 令牌的额外参数 但是 我知道 GET 请求中的 CSRF