问题标签 [protect-from-forgery]

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 投票
1 回答
733 浏览

android - 带有移动应用程序的 Railsprotect_from_forgery

我正在 Rails 上构建一个应用程序,protect_from_forgery我的application.rb. 我还为移动应用程序构建了一个 RESTful API 以使用JSON数据进行通信。我看到一些网站声称为了让移动应用程序与 rails 应用程序交互,他们关闭protect_from_forgery了 JSON 请求。

这如何解决 CSRF 的问题?恶意站点能否没有代表用户执行不良更改的 JSON POST 请求?

所以,为了解决这个问题,我决定使用一个自定义的mime-type或者special key只有移动应用程序会使用的,然后protect_from_forgery执行以下操作:

  1. 检查 csrf 令牌是否以 a 的形式存在hidden div(对于 Web 应用程序为 true,并且默认包含)。
  2. 如果不存在,请检查此special keymime-type

有没有办法实现这个或类似的,来解决这个问题?

更新

原来是我想多了这个问题。Rails 是“神奇的”,它以某种方式自动、适当地处理来自移动应用程序的请求,而不会引发异常。所以,基本上我们根本不需要做任何修改。

不过,我并没有完全检查 Rails 是如何实现这一点的——从教学上讲,这对某些人来说可能仍然很有趣。

0 投票
1 回答
2821 浏览

ruby-on-rails - 在 Rails 中使用 HTTP GET 请求进行 CSRF 保护

我知道 Rails 默认情况下对请求没有CSRF保护HTTP GET,因为它声称它们是幂等的。但是,这些 GET 请求会返回给用户的敏感信息,我不希望恶意站点检索此信息。

在 Rails中保护HTTP GET请求的最佳方法是什么?CSRF

0 投票
1 回答
358 浏览

ruby-on-rails - 智能手机上禁用 cookie 的 InvalidAuthenticityToken

使用 Rails 3.0.3 和 Heroku

我的 Heroku 应用程序上的表单帖子出现 InvalidAuthenticityToken 之类的错误。在我的应用程序控制器中,我启用了protect_from_forgery。

我的搜索表单

路线:

当有人尝试通过我的搜索表单搜索网站并且他们禁用了 cookie并使用智能手机时,就会发生无效的令牌错误。我曾尝试使用禁用 cookie 的网络浏览器 (Firefox) 访问该网站,但效果很好。

我在我创建的“搜索引擎”上没有出现这种行为(以我无法在这个应用程序中使用的方式)所以出了什么问题。为什么只禁用智能手机和 cookie?

我能做些什么来完成这项工作?

0 投票
8 回答
47151 浏览

ruby-on-rails - Rails CSRF 保护 + Angular.js:protect_from_forgery 让我在 POST 上注销

如果protect_from_forgery在 application_controller 中提到了该选项,那么我可以登录并执行任何 GET 请求,但在第一个 POST 请求时,Rails 会重置会话,这会将我注销。

protect_from_forgery暂时关闭了该选项,但想将它与 Angular.js 一起使用。有没有办法做到这一点?

0 投票
1 回答
2166 浏览

asp.net - asp.net 和跨站点请求伪造

我们最近运行了一个 Appscan 应用程序,报告显示在几页上:以下更改已应用于原始请求:

  • 将 HTTP 标头设置为“ http://bogus.referer.ibm.com
    推理:
    相同的请求在不同的会话中发送了两次,并收到了相同的响应。这表明没有一个参数是动态的(会话标识符仅在 cookie 中发送),因此应用程序容易受到此问题的影响。

我对如何处理这个问题有点困惑,我应该只查看 Request.UrlReferrer 并确保它与 URL 中的主机相同,还是有更好的方法来处理这个问题?

谢谢。

0 投票
2 回答
46 浏览

ruby-on-rails - 如何通过 AJAX/更新操作安全地注册页面上的非路由点击?

我想注册网页上的各种点击,例如切换元素的可见性。

点击来自未登录的用户。

我有一个Impression带有属性的模型,该actions属性存储在某个页面上进行的操作的键值对。

在单击事件中,我正在使用此功能更新记录:

但我意识到这根本不安全,理论上用户可以更新她想要的任何记录。

我怎样才能更安全地做到这一点,我可以protect_from_forgery在我的用例中以任何方式利用 Rails 吗?

0 投票
1 回答
89 浏览

ruby - Ruby:protect_from_forgery 何时提出?

我有以下代码:

我的疑问是什么时候protect_from_forgery会被调用?什么时候创建 Foo 的实例?

提前致谢

0 投票
0 回答
64 浏览

smtp - SMTP 登录尝试检测

有没有办法检测 SMTP 登录,特别是那些在第一次尝试中没有成功的登录?当电子邮件客户端配置了保存密码选项时;smtp 访问失败的可能性太小。因此,如果 smtp 登录访问失败,我相信,这应该是一次无效/伪造尝试。

我如何知道用户是否正在尝试登录 SMTP?

0 投票
1 回答
780 浏览

unity3d - Rails protect_from_forgery 问题和 C#/unity3D 警告

我刚刚接触到 Rails 的protect_from_forgery,我为我的应用程序编写了一个简单的登录信息,如下所示:

客户端

在服务器端,在我的 application_controller.rb 我有

我已经尝试从页面登录,似乎还可以;至少我可以登录。但是,我有几个问题要问(我在 win OS 上)

  1. 我找不到关于protect_from_forgery 选项的任何细节;如果有任何一方能详细解释以下选项,我将不胜感激:null_session, if: Proc.new { |c| c.request.format == '应用程序/json' }

  2. 如何判断我的表单是否正在使用并通过 CSRF 身份验证?我可以从控制台的参数集中看到发送的表单有一个“authenticity_token”,是这个吗?如果是,它是如何生成/定义的?正如我所看到的,每次都是一样的。

另外,我有另一个应用程序(用 Unity3D c# 编写)在下面执行,连接到同一台服务器:

这一次,我的客户端仍然可以登录,但是从控制台我可以看到有如下警告

我已经对此进行了谷歌搜索,但似乎大多数答案是说我应该添加skip_before_filter :verify_authenticity_token,但这只会绕过安全检查,不是吗?但是我需要在这里进行安全检查,所以这对我来说毫无意义......

我该如何解决这个问题并确保使用protect_from_forgery 检查我的登录会话?

提前感谢大家帮助我解决我的问题!:)

0 投票
1 回答
552 浏览

ruby-on-rails - Rails 引擎中的 ActionController::InvalidAuthenticityToken

我正在 Rails 中构建一个 saas 引擎。我在 account#create 方法上遇到以下错误(使用了warden gem):

我的应用程序控制器如下所示:

当更改protect_from_forgery with: :exception为 :null_session 时,错误消失了,但我认为这不是解决此问题的正确方法,因为用户应该在此注册操作后登录,而 :null_session 仅适用于 API。

该网站也没有为正在注册的用户创建任何似乎不正确的 cookie。

有任何想法吗?