问题标签 [csrf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8018 浏览

ruby-on-rails - 如何在 Rails 应用程序中关闭 CSRF 保护?

Rails 中内置的 CSRF 预防对我们正在进行的一些自动负载测试造成了一些问题,我想在整个过程中将其关闭。我该怎么做呢?

0 投票
3 回答
9466 浏览

ajax - 公开会话的 CSRF 保护令牌是否安全?

Django 带有CSRF 保护中间件,它生成一个唯一的每个会话令牌以在表单中使用。它扫描所有传入POST请求以获取正确的令牌,如果令牌丢失或无效,则拒绝请求。

我想对一些 POST 请求使用 AJAX,但是说请求没有可用的 CSRF 令牌。这些页面没有<form>可以挂钩的元素,我宁愿不要混淆将标记作为隐藏值插入的标记。我认为这样做的一个好方法是公开一个 vew 喜欢/get-csrf-token/返回用户的令牌,依靠浏览器的跨站点脚本规则来防止敌对站点请求它。

这是一个好主意吗?是否有更好的方法来防止 CSRF 攻击,同时仍然允许 AJAX 请求?

0 投票
3 回答
5182 浏览

google-app-engine - 如何最好地防止 GAE 应用程序中的 CSRF 攻击?

那么,对于 GAE 应用程序来说,防止 XSRF 攻击的最佳方法是什么?想象一下:

  1. 任何人都可以看到用户的公共对象,并且在请求中使用 db.Model id 来确定要显示的对象。恶意用户现在拥有该 ID。
  2. 恶意用户创建自己的对象并签出删除表单。他们现在知道如何删除具有特定 id 的对象。
  3. 恶意用户让无辜用户提交对该用户对象的删除请求。

我可以添加哪些步骤来防止#3?请注意,当我说 ID 时,我使用的是密钥的实际 ID 部分。我的一个想法是在删除请求中使用完整的键值,但这会阻止恶意用户解决这个问题吗?据我所知,密钥是模型类类型、应用程序 ID 和对象实例 ID 的某种组合,因此如果他们愿意,他们可能会从 id 派生密钥。

还有其他想法吗?Jeff 写了一篇关于这个的帖子,并提出了一些方法——一个隐藏的表单值,它会在每次请求时改变,以及一个通过 js 写入表单的 cookie 值。我不想排除非 javascript 用户,因此 cookie 解决方案不好 - 对于隐藏的表单值,我必须对显示可删除对象的每个请求进行数据存储写入 - 对于可扩展的对象来说,这不是理想的情况应用程序!

还有其他想法吗?

0 投票
2 回答
354 浏览

.net - 任何人都可以建议一个抽象基类来防止 .NET 2.0+ 中的 XSRF

我正在寻找一个抽象基类或母版页解决方案,以防止任何人同时使用令牌和 ttl 进行 XSRF。谁能指出我正确的方向?

编辑:理想的解决方案将利用默认会员提供者发送给客户端的 cookie。

0 投票
6 回答
1706 浏览

security - CSRF 不是浏览器安全问题吗?

关于跨站点请求伪造 (CSRF) 攻击,如果 cookie 是最常用的身份验证方法,为什么 Web 浏览器允许从另一个域生成的页面发送某个域(以及该域)的 cookie?

通过禁止这种行为,CSRF 在浏览器中是否可以轻松预防?

据我所知,这种安全检查并没有在网络浏览器中实现,但我不明白为什么。我是不是搞错了什么?

关于 CSRF:

编辑:我认为在上述情况下不应在 http POST 上发送 cookie。这就是让我吃惊的浏览器行为。

0 投票
1 回答
1163 浏览

ruby-on-rails - RESTful 应用程序中的 XSRF

我是一名尝试学习 Rails 和 RESTful 方法的 ASP.NET 开发人员。为了理解,我打算编写一个电子邮件客户端,它会对服务器进行 RESTful GET 调用以获取电子邮件并通过 POST 发送电子邮件。

要遵循哪些最佳实践(通用和/或特定于 Rails),以便上述应用程序不会暴露任何 XSRF 漏洞。

0 投票
3 回答
969 浏览

asp.net-mvc - 在 ASP.NET MVC 中使用双重提交的 Cookie 实现 XSRF 安全性的想法

我决定尝试使用双重提交 cookie技术来尝试防止对我正在处理的站点的 XSRF 攻击。所以我在这里写下来的方式是,除了获取信息之外,所有实际执行的操作都将是帖子。获取将是……呃……获取。其次,发布的每个表单都将具有键/cookie 组合。

我的问题是,在 ASP.NET MVC Web 应用程序中实现此功能的最简单方法是什么?

不回答我自己的问题,但这是我最初的想法:

现在我的控制器都继承自一个基本控制器,所以我的第一个想法是重写 OnActionExecuted 方法来检查所需的表单字段是否存在,如果找到它,从那里根据 cookie 验证它并允许发布继续或将其踢到某个错误页面。

对于表单部分,我正在考虑生成我自己的 html 扩展方法,例如... Html.BeginSecureForm() 重载所有与 BeginForm 相同的方法(以防我需要它们)但自动生成伪随机密钥和 cookie 并放置cookie 和表单内的表单字段(如果它是 POST!)自动。

抱歉,如果这有点混乱,我在这些页面中散布着笔记,我正在尝试组织它们。其中一部分是为了弄清楚我对这个 XSRF 安全性的设计。

0 投票
1 回答
668 浏览

security - CSRF:POST请求返回的JSON数据会被窃取吗?

POST 请求返回的 JSON 数据会被跨站请求伪造攻击窃取吗?

0 投票
2 回答
4635 浏览

asp.net - CSRF 验证令牌:会话 id 安全吗?

在 asp.net 中,我正在实现一个 IHttpModule 来减轻 CSRF 攻击。它向响应 html 中注入一个隐藏的表单参数,其中包含 GET 上的 asp.net SessionID。然后在 POST 上检查以确保隐藏参数的值与当前 SessionID 匹配。据我所知,获取 SessionID 值的唯一方法是从 cookie 中获取,恶意站点无法读取或确定该 cookie。有什么我忽略的吗?

0 投票
4 回答
2169 浏览

jquery - 如何保护我的 JsonResult GET 调用?

我知道如何使用 MVC 的 AntiForgeryToken 属性及其关联的 HTML 帮助程序来帮助 XSRF 保护我的应用程序的表单 POST。

可以为实现 GET 的 JsonResults 做类似的事情吗?

例如,我的 View 包含一个 onSubmit jQuery 调用,如下所示:

我想确定这个 JsonResult 只能从预期的页面调用。

编辑:

我发现这篇关于类似问题的帖子,没有具体答案。

确保我的 GET(非破坏性)URL 仅由我自己页面的 AJAX 调用使用的最简单方法是什么?