问题标签 [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.
asp.net-mvc - 防伪令牌盐有什么用?
在 ASP.NET MVC 1.0 中,有一个处理跨站请求伪造安全问题的新特性:
我发现每次呈现新表单时,以 html 表单生成的令牌都会不断变化。
我想知道这些令牌是如何生成的?并且当使用某些软件扫描这个站点时,它会报告另一个安全问题:会话已修复。为什么?既然token一直在变,怎么会出现这个问题呢?
还有一个功能,就是 salt 的antiForgeryToken
,但是我真的知道这个是干什么用的,即使我们不使用 salt 来生成 token,token 也会一直在变化,为什么会有这样的功能?
ajax - 要求 POST 加上自定义 Content-Type 是否会阻止 CSRF?
我的团队正在构建一个站点,该站点使用对 WCF 服务的 AJAX 调用来进行所有状态更改。这些服务仅在其方法为 POST 且其 Content-Type 为“application/json”时才接受请求。假设我们的站点没有 XSS 漏洞,这是否足以为我们的 WCF 服务提供针对 CSRF 的保护?攻击者是否可以使用自定义 Content-Type 标头创建跨站点 POST?
[编辑] 显然,恶意第三方站点有多种方法可以向我的站点构建 HTTP POST 请求。然而,据我所知,这些方法都不允许更改 Content-Type 标头。XHR 和 Flash 都允许您设置标题,但有严格的跨站点限制。
security - 检查推荐人是否足以防止 CSRF 攻击?
检查引荐来源网址是否足以防止跨站点请求伪造攻击?我知道引用者可以被欺骗,但是攻击者有什么办法可以为客户做到这一点?我知道代币是常态,但这行得通吗?
django - 来自 Django 的 CSRF 中间件的大量误报?
我从 Django 的 contrib CSRF 中间件中得到了大量的误报。仅仅从网站的正常使用来看,在很多情况下,CSRF 刚刚开始将请求作为可疑的伪造攻击来阻止。
还有其他人有这样的问题吗?我正在使用 Django 的 SVN 分支,因此拥有最新版本的 CSRF 中间件。我如何诊断这些问题?
更新:我在我的生产和开发网站上看到了这些误报。它们偶尔发生。我的站点使用子域,并且站点的不同开发/生产版本在不同的服务器上运行,但由子域分隔。什么会触发 CSRF 攻击警告?是在将开发 cookie 发送到生产站点时吗?在同一登录用户的子域之间移动会导致问题吗?
security - 保护会话
我知道传统上不以这种方式使用 SO(或者可能是这样),但我一直在学习 webapp 安全性,并且认为从 SO 专家那里听到他们对这篇文章的看法会很好并令人鼓舞(我是现在阅读它,它是关于会话安全的)。
http://carsonified.com/blog/dev/how-to-create-bulletproof-sessions/
也许我们可以进行某种讨论,指出作者错误陈述/忘记的内容以及有哪些更好的做法?
例如,当涉及到 sql 注入等不同的安全主题时,许多人推荐 mysql_real_escape_strings 之类的东西,但专家会告诉你,没有什么比准备好的语句更好的了。从评论来看,这篇文章似乎有问题,所以我想知道他的内容到底是好是坏。
php - 如何防止 PHP、csrf、xsrf 中的表单重放/中间人攻击
我有一个网络表单,我正在使用 PHP。我知道表单可以被操纵(我相信它被称为重放攻击或中间人攻击)。所以我想使用一些真实性令牌作为隐藏字段。
我知道的威胁可能性是:
- 攻击者劫持了合法用户的表单(我认为这是中间人攻击)
- 合法用户本身就是攻击者:他获取表单,读取令牌但使用它发送危险数据(我相信这是重放攻击)
在我回答问题之前,如果我到目前为止所说的任何内容不正确,请纠正我,因为也许我的理解有缺陷。
现在的问题:
- 生成此令牌的最佳做法是什么,以便没有它的表单被拒绝(例如,加盐?)。
- 人们做了什么来确保令牌不会被重放。
基于评论的新小问题:
- 会话劫持与中间人攻击相同吗?
php - CakePHP 和 CSRF
我是 CakePHP 的新手,想知道如何保护我的表单免受跨站点请求伪造,即向表单添加一个随机数。我已经在配置文件中设置了盐。
zend-framework - 如何使用 Zend 框架保护用户免受跨站点请求伪造?
我的程序使用 Zend Framework,我想使用 Zend_Form_Element_Hash 保护用户免受 CSRF 的影响。但这似乎不起作用。
例如,我的注销表单代码是
在我的控制器 Auth 插件中,我做
在我的布局中
好的。但它不起作用,我点击表单的提交按钮,页面重新加载但身份仍然存在。
正如我所意识到的,Zend_Form_Element_Hash 每次表单创建时都会生成新的哈希值,并将用户的哈希值与会话的哈希值进行比较——最后生成的哈希值!这很奇怪。例如,即使我尝试在我的应用程序中仅创建一个 R00_Form_Exit,将其存储在注册表中并从中回显,从我的站点“在新选项卡中”打开页面也会导致所有此类受 csrf 保护的表单停止工作。
那么,我该如何保护呢?
zend-framework - 如何使用 Zend_Form_Element_Hash?
然后我尝试使用 Zend_Form_Element_Hash 它为每个请求重新生成一个散列。
在我的代码中:
然后我转储 $_SESSION 我看到每个页面重新加载一个新值。
然后我发送一个表单报告错误“令牌'28a5e0e2a50a3d4afaa654468fd29420'与给定令牌'a64407cc11376dac1916d2101de90d29'不匹配”,每次 - 新的一对令牌
django - Is there a way to create an exception in django 1.0 csrf protection?
I know there is in the development version of Django, but I don't see this in Django 1.0. I took a look of the code and such an exception is definitely not built in. I need to have this ability as I can't add the csrf middleware token to a third party flash app I am using which needs to make a POST request back to django. :(
Anyone have any ideas?