问题标签 [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.
django - 无法禁用 Django CSRF 框架并且正在破坏我的网站
django csrf 中间件不能被禁用。我已从项目的中间件中将其注释掉,但由于缺少 CSRF 问题,我的登录失败。我在 Django 后备箱工作。如果没有在中间件中启用 CSRF,它会如何导致问题?
我必须禁用它,因为我的网站上有很多 CSRF 刚刚中断的 POST 请求。关于如何在 django 主干项目中完全禁用 CSRF 的任何反馈?
来自 Django 主干的“新”CSRF 框架还破坏了一个外部站点,该站点正在进入并在我提供给他们的 URL 上执行 POST(这是 restful API 的一部分。)我无法禁用 CSRF 框架作为我之前说过,我该如何解决这个问题?
django - Django CSRF 框架有很多失败
我的站点上的 CSRF Django 中间件(来自 SVN 主干的版本)出现了许多故障。我得到的唯一错误是:CSRF 故障:原因 = CSRF 令牌丢失或不正确。
我如何诊断这些 CSRF 错误来自哪里?我自己不能导致 CSRF 错误,但我设置网站在触发 CSRF 错误视图时向我发送电子邮件,所以我知道它经常发生。
django - 在 SVN Trunk 中完全禁用 Django 的 CSRF 保护
我花了几个小时沮丧,试图禁用 Django 现在试图强加给我的 CSRF,但无济于事。有没有其他人尝试过这个并取得了更大的成功?除了源补丁(但猴子补丁还可以)之外,我对任何可行的东西都很好。
csrf - CSRF 令牌生成
这是一个关于生成 CSRF 令牌的问题。
通常我想根据与用户会话相关联的唯一数据生成一个令牌,并使用密钥进行散列和加盐。
我的问题是关于在没有唯一用户数据可供使用时生成令牌的问题。没有可用的会话,cookie 不是一个选项,IP 地址和这种性质的东西是不可靠的。
有什么理由我不能将要散列的字符串也包含在请求中吗?生成令牌并嵌入它的示例伪代码:
CSRF 令牌的示例服务器端验证
哈希中使用的字符串在每个请求中都会有所不同。只要它包含在每个请求中,CSRF 令牌验证就可以继续进行。由于它在每个请求中都是新的并且仅嵌入在页面中,因此无法从外部访问令牌。然后令牌的安全性落到只有我知道的 $mySecretKey 上。
这是一种天真的方法吗?我错过了为什么这不起作用的一些原因吗?
谢谢
django - 禁用 cookie 的 Django CSRF 问题
在测试我用 Django 编写的应用程序时,我发现每次提交表单时都会抛出 HTTP 403 Forbidden 错误。我知道 CSRF 中间件使用 CSRF 令牌检查 cookie - 但是我的方法应该为禁用 cookie 的用户提供什么?
我是否需要检查用户是否在我的每个视图中启用了 cookie,或者是否有更有效的方法?
提前致谢。
这个问题涉及 Django pre-1.2——如果你有旧版本,解决方案会有所不同。
ruby-on-rails - Rails、OAuth 和 CSRF 保护
我正在使用 REST 和 OAuth 与 Rails 应用程序(来自 iPhone 应用程序,但这不相关)。但是,我在 Rails 的 CSRF 保护方面遇到了一些问题(通过protects_from_forgery
)。
我知道 CSRF 保护仅适用于常规表单提交(即 Content-Type=application/x-www-form-urlencoded),所以如果我提交 JSON 或 XML 数据就可以了。不幸的是,OAuth 目前仅限于 application/x-www-form-urlencoded 请求。有一个草案规范将 OAuth 扩展到 non-form-urlencoded data,但这现在对我没有帮助。
在我看来,我有以下选择:
以 JSON 格式发送数据,知道它不会成为 OAuth 签名的一部分,因此会受到中间人攻击。显然不是一个有吸引力的解决方案。
UsersController#update_oauth
创建内部委托给常规操作(例如)的特殊 Rails 操作(例如UsersController#update
)。然后将这些从防伪保护中排除 (protects_from_forgery :only => [:update]
)。这应该可行,并且对于一两个动作来说可能是可以接受的,但显然是一个非常混乱的解决方案。覆盖 Rails CSRF 保护以忽略 OAuth 请求。我没有尝试过,但似乎应该可以更改其中一个钩子(可能是
verify_authenticity_token
过滤器)以认为 OAuth 请求成功。
有没有人遇到过这个?有什么建议吗?还是我可能缺少一些基本的东西?
search - 是否有理由将令牌放在搜索表单上?
先说一下我了解CSRF攻击的概念。现在我想知道,将令牌放在搜索表单上是否有好处?我自己真的什么都想不出来。
ruby-on-rails - 如何使用 Rails AuthenticityToken 基础设施显式保护 GET 操作
Rails AuthenticityToken 自动保护 POST/PUT/DELETE 请求免受 CSRF 攻击。但我想到了另一个用例。
我正在我的网站上展示我不想嵌入到其他网站的视频。它的工作原理是我的 Flash 播放器从我的 CDN 发送一个签名 URL 的请求,该请求将在几秒钟后过期。到目前为止,用户必须登录才能观看视频,这就是身份验证。但是现在我希望该站点的任何访问者都能够观看视频,而不允许从另一个站点请求签名 URL(例如,如果他们在他们的站点上嵌入了我们的播放器)。
我的第一个想法是 AuthenticityToken,因为它似乎具有这些确切的语义……我需要做的就是将它插入 GET 请求。有任何想法吗?
django - Django 错误:无法导入 csrf.py
我的 Django 应用程序突然开始崩溃,我不明白为什么。我什至不能让它现在运行。我正在运行修订版 11798。
当我使用单机服务器测试我的应用程序时,它突然开始不导入csrf。我以前让它工作得很好。我试图通过使用 shell 查看发生了什么,结果如下:
我检查了文件系统以查看文件是否存在并且它是(并且完好无损)。我非常困惑。谁能帮我吗?
Django错误如下: