问题标签 [csrf-protection]
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.
token - 如何生成和验证 csrf 令牌
生成 csrf 令牌和验证的最佳方法是什么。据我所知,即使您在“帖子”表单中有隐藏的表单字段,黑客也可以简单地使用 ajax 获取该表单,获取 csrf 令牌并向站点发送另一个请求以提交表单。
如果我们要检查发送给我们的标头……那么黑客可以简单地将 csrf 令牌发送到服务器端脚本,然后该脚本将模拟 http 标头。
那么如何实际生成和验证 csrf 令牌呢?
asp.net - 模拟 CSRF 攻击
我想模拟 CSRF 攻击来检查我的网站漏洞。我在我的 asp.net web 应用程序上尝试过,但未能模拟。所以请帮我模拟CSRF攻击。我已经通过 test.aspx 进行了模拟。
我还缺少什么?提前致谢。
php - 这个 CSRF 保护是如何工作的?
以下是取自 Facebook 的认证页面的示例。将数据添加到会话然后使用 javascript 重定向到 URL 背后的想法是什么?另外为什么要对 uniqid 进行 md5 哈希?
security - CSRF 保护仅适用于具有副作用的请求(POST、DELETE、PUT)?
据我了解,跨站点请求伪造攻击“仅”用于更改服务器端的状态。
认为:
- 我有一个 REST Web 应用程序,我确信 HTTP GET 请求不会改变我的应用程序持久状态(无副作用)
- 我使用特定于会话的密钥来授权请求
我是否需要验证 GET 请求的会话特定密钥?
php - CSRF保护问题
我目前正在将 CSRF 保护实施到我的框架 (PHP) 中。
但是我想知道:
攻击者不可能将我的页面加载到(隐藏的)iframe 中(获取令牌)并使用 JavaScript 更改一些数据吗?
然后提交表格?
csrf - CSRF Java 库
我想知道有哪些库可以保护 J2EE 应用程序免受 CSRF 攻击。
我使用了 OWASP 的 CSRF Guard。我尝试搜索,但找不到任何其他生产质量库。还有其他人吗?
附带说明一下,我正在构建的应用程序使用 Grails 框架,所以如果有 Grail 的 CSRF 插件,我也想知道。
php - 使用会话令牌或随机数进行跨站点请求伪造保护 (CSRF)?
我继承了一些最近受到攻击的代码,其中攻击者发送了重复的远程表单提交。
我使用为每个用户(而不是会话 ID)创建的会话身份验证令牌实现了预防。虽然我意识到这种特定的攻击不是 CSRF,但我从这些帖子中调整了我的解决方案(尽管过时了)。
- https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29
- http://tyleregeto.com/a-guide-to-nonce
- http://shiflett.org/articles/cross-site-request-forgeries
但是,它仍然觉得这里存在一些漏洞。虽然我知道没有什么是 100% 安全的,但我有一些问题:
- 难道潜在的攻击者不能简单地启动一个有效会话,然后在他们的每个请求中包含会话 ID(通过 cookie)吗?
- 似乎nonce会比session token更好。生成和跟踪nonce的最佳方法是什么?
- 我遇到了一些关于这些解决方案只是单一窗口的观点。有人可以详细说明这一点吗?
- 这些解决方案是否总是需要会话?还是可以在没有会话的情况下创建这些令牌?UPDATE,这个特定页面只是一个单页表单(无需登录)。因此,仅仅为了生成一个令牌而开始一个会话似乎是多余的。
- 是否有一个更简单的解决方案(不是验证码)我可以实施来防止这种不使用会话的特定攻击。
最后,我正在寻找更好的理解,以便我可以实施更强大的解决方案。
php - 我们真的不受 CSRF 的保护吗?
确认.php
确认保存.php
假设我们有一个像这样的典型 CSRF 保护 如果攻击者使用此代码绕过 csrf 令牌怎么办?
这件事一直困扰着我,但我懒得尝试对任何随机站点进行攻击。这不可能吗?
示例代码被盗在 php 中防止 csrf
更新
当有人想将令牌从一个平台传递到另一个平台或从服务器端传递到客户端时会发生什么?以 Flash 到 PHP 为例,它如何从 csrf 中获得保护?
php - 在 codeigniter 中不属于表单的内容上防止 CSRF
我知道 Codeigniter 有一个非常有用的安全类,如果你使用表单助手,它可以防止 CSRF/XSRF,但是由于 CI url 结构几乎直接调用了很多函数,我怎样才能在/action/logout
没有额外的情况下防止 CSRF像SE这样的确认表?
我有过的想法:
- 检查页面引用者
- 检查请求的 MIME 类型(甚至可能?)(对于图像 CSRF,例如
<img src="http://example.com/action/logout" />
) - 使所有操作成为表单的一部分(不推荐)
- 在页面 URL 中包含 CSRF 令牌(丑陋且非常糟糕,用户喜欢复制和粘贴 url,而不考虑存储的会话 ID 或其他私人信息)
我不会费心保护诸如此类的东西,/account/view/1/cyclone/
因为它不会执行任何操作,最多只会浪费带宽。
当然,我确实知道有些人喜欢编写代码来自动化他们的网站使用,我尊重这一点,这就是为什么我将创建一个 API 来通过代码或自动执行操作。
csrf - 对预防 CSRF 的怀疑
我对 CSRF 的预防有一个疑问。许多网站说可以通过使用每个会话随机生成的“令牌”来防止 CSRF。
现在我的疑问是,假设我有一个类似的功能:
现在这个 md5 哈希显然对任何黑客都可以通过源代码看到。他可以简单地打开这个页面,生成一个令牌,并保持页面打开,这样会话就不会被破坏,并使用另一个选项卡或其他任何东西,开始黑客攻击,
不 ?
还是我对令牌的想法不正确?
感谢您的帮助:D