问题标签 [authenticity-token]

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 回答
4149 浏览

ruby-on-rails - Rails 请求伪造保护设置

请帮助 Rails 中的新手 :) 我在课堂protect_from_forgery上没有任何属性的调用(默认情况下给出) 。ApplicationController

基本上这里的代码:

我认为它应该做的是:它应该防止任何没有正确的 POST 请求authenticity_token。但是当我像下面这样使用 jQuery 发送 post 请求时,它工作正常(在数据库中执行了更新语句)!

我在控制台中看到authenticity_token发送的参数中没有,但请求仍然被认为是有效的。这是为什么?

UPD 在 config/environments/development.rb 中找到配置设置

由于 DEV 环境和本地请求,这些 jQuery post 请求是可以的。

0 投票
2 回答
10392 浏览

ruby-on-rails - 如何添加真实性令牌?

我最近切换到谷歌关闭一个新项目。我在将真实性令牌添加到 ajax 调用中的标头时遇到问题。我该怎么做?

我的 Ajax 片段(使用 goog.net.XhrIo 类):

在后端使用 rails。

更新:

日志:

0 投票
1 回答
992 浏览

ruby-on-rails - Rails InvalidAuthenticityToken 在随机时间

这是交易。

我们的应用程序正在运行,作者正在使用它来发送网站内容。问题是,我们的作者有时会在提交站点中任何资源的表单后出现错误。检查生产日志后的错误是旧的 InvalidAuthenticityToken。

问题是,他们没有更改令牌,他们没有使表单无效,他们除了在编辑器中写入并单击提交之外什么都不做!

该错误似乎是完全随机的,有时会发生,有时不会:/我所知道的是它在编辑或创建项目时发生,因此无论是 POST 还是 PUT 请求,但问题是,它不在一个应用程序的特定领域,它最终只是不时发生在我们的表单中。

我们的环境是一个 HAProxy,它为一个 mongrel_cluster 提供服务,其中有 20 个 mongrel 运行我们的应用程序。Rails 版本是 2.3.8

这可能是不同杂种中的会话的问题吗?如果不是,我能做些什么来阻止这种随机错误,这使得作者有时会浪费大量时间编辑文本,而只是因为该死的错误而丢失它。

任何帮助都非常感谢。

0 投票
1 回答
1320 浏览

ruby-on-rails - 带有 REST 调用的 Ruby on Rails 3 InvalidAuthenticityToken

我只是在 Ruby on Rails 3 RC 中组合了一个简单的 Web 应用程序,我对防伪保护有点难过。我计划拥有一个 Web 界面,并允许从 iPhone 应用程序调用 XML API。我目前正在使用 REST 请求生成器对此进行测试,但出现 InvalidAuthenticityToken 错误。

首先,我认为这些仅适用于不是 XML 或 JSON 的请求。其次,我在 XML 请求中附加了一个用户唯一的 API 密钥,因此可以通过其他方式实现防伪(我知道不完全安全,但开发的起点不错)。

有没有人得到任何指示来阻止对 XML/JSON 请求的这种保护,以便在使用车载系统之前以某种方式覆盖默认令牌检查器以通过我自己的 API 令牌系统进行验证?

干杯戴夫芬斯特

0 投票
2 回答
775 浏览

ruby-on-rails - 如何使用 Rails 2.3.8 在子域之间共享会话

我发现了许多描述如何做到这一点的帖子。它们看起来都像是把它放在适当的环境配置文件中:

但是,如果我这样做,那么尝试登录(我正在使用设计)会失败:

我看到其他人发布了同样的问题(在各种博客的评论部分提供了设置会话 [:域] 的建议),但我还没有发现有人回答了关于为什么会发生这种情况以及如何解决的问题的案例它。

有任何想法吗?

0 投票
1 回答
679 浏览

ruby-on-rails - iPhone 图像(二进制)文件发布到 Rails 应用程序

我是 API 的后端 Rails 开发人员。API 必须接受来自 iPhone 客户端的图像上传。

我的问题是整个 POST 的 Content-Type 必须是什么才能允许上传并且不会被 InvalidAuthenticityToken 问题困住。它必须是多部分类型,因为(在一种情况下)有 3 个图像文件和正常的文本 POST 参数。我们可以控制 iPhone 代码,并且不想让它成为例如从服务器请求令牌然后通过 POST 提交的两个阶段。

谢谢,
克雷格库克

0 投票
1 回答
1048 浏览

ruby-on-rails - 如何使用从 RoR 应用程序到另一个 RoR 应用程序的 HTTP POST 请求来处理 AuthenticityToken 值?

我正在使用 Ruby on Rails 3,我想知道如何使用从 RoR 应用程序到另一个 RoR 应用程序的 HTTP POST 请求来处理 AuthenticityToken 值。在这种情况下,如果他/她提供了正确的值和值,我的目标是提交一个登录表单并以JSON格式返回用户信息。emailpassword

我在这个 URL 有一个 RoR 应用程序

以及此 URL 上的另一个 RoR 应用程序

pjtname.com如果我像这样从应用程序向应用程序发出 HTTP POST 请求users.pjtname.com(在此示例中,我使用Typhoeus gem

我得到这个回应

那么,如何以安全的方法\模式处理 AuthenticityToken 值? 我想知道应用程序何时位于同一台服务器上以及何时不在。

http://users.pjtname.com/authentications/new我有以下用于登录用户的表格:

在 authentications_controller.rb 我有

在 routes.rb 我有



@idlefingers答案的更新


要求

回复


要求

回复

0 投票
2 回答
775 浏览

ruby-on-rails - 有时禁用 CSRF 保护是合理的吗?

我特别考虑登录表单:

就其本质而言,登录表单会阻止对任意输入的操作——如果没有有效的用户名和密码,你就会被退回。为什么这些甚至需要添加authenticity_token或类似的跨站点请求伪造保护?

我很好奇登录表单是否是 CSRF 甚至通常不受欢迎的一个例子:

给定一个匿名客户端,应该允许与站点的第一个联系点是 POST 有效的登录凭据。CSRF 通过首先要求客户端执行 GET 以建立匿名会话 cookie 来防止这种直接交互,该 cookie 用作其authentity_token 的基础。然后必须使用登录凭据发回令牌。当这里的实际目标是验证没有会话到达并试图提供其凭据的用户时,额外的前期步骤似乎毫无意义。

在这种情况下,我是否缺少一些安全考虑?

0 投票
0 回答
2345 浏览

curl - 使用带有 curl 的真实性令牌登录到网页

我正在尝试创建一个自定义程序(或脚本)来登录网页然后下载文件。登录页面有一个包含 2 个文本字段(用户名和密码)和一个隐藏字段“authenticity_token”的表单。我已阅读有关真实性令牌的信息。

我尝试了使用 curl 的自定义 bash 脚本,但它不起作用。任何人都可以看看我的代码并告诉我它有什么问题吗?

当我使用浏览器登录网页时,如果登录成功,服务器会将我重定向到下一页,但是当我使用脚本时,服务器会回复标题为“200 OK”而不是“302 重定向”的数据包(我正在使用wireshark来捕获包)。所以我认为身份验证不起作用。

请问有什么建议吗?

0 投票
1 回答
4443 浏览

routing - 收到警告:从 Rails 3.0.2 升级到 3.1 后无法验证 CSRF 令牌的真实性

搜索了一段时间,常见的解决方案是在布局标题中插入 <%= csrf_meta_tags %> 。但是,这没有什么区别。安装 jquery-rails 也无济于事

Rails 3.1.0 Ruby 1.9.2 Mongoid 2.2.0

来到 3.1 之后的另一个奇怪的事情是,当我通过 rake 路由检查路由时,有一些 url 助手未指定的 url,例如 GET、PUT 和 DELETE 具有相同的 url,但助手定义的 url 只能到达第一个 cat。

edit_message GET /:permalink/messages/:id/edit(.:format){:action=>"edit", :controller=>"messages"}

message GET /:permalink/messages/:id(.:format){:action=>"show", :controller=>"messages"}