问题标签 [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.
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
执行以下操作:
- 检查 csrf 令牌是否以 a 的形式存在
hidden div
(对于 Web 应用程序为 true,并且默认包含)。 - 如果不存在,请检查此
special key
或mime-type
。
有没有办法实现这个或类似的,来解决这个问题?
更新
原来是我想多了这个问题。Rails 是“神奇的”,它以某种方式自动、适当地处理来自移动应用程序的请求,而不会引发异常。所以,基本上我们根本不需要做任何修改。
不过,我并没有完全检查 Rails 是如何实现这一点的——从教学上讲,这对某些人来说可能仍然很有趣。
ruby-on-rails - 在 Rails 中使用 HTTP GET 请求进行 CSRF 保护
我知道 Rails 默认情况下对请求没有CSRF
保护HTTP GET
,因为它声称它们是幂等的。但是,这些 GET 请求会返回给用户的敏感信息,我不希望恶意站点检索此信息。
在 Rails中保护HTTP GET
请求的最佳方法是什么?CSRF
ruby-on-rails - 智能手机上禁用 cookie 的 InvalidAuthenticityToken
使用 Rails 3.0.3 和 Heroku
我的 Heroku 应用程序上的表单帖子出现 InvalidAuthenticityToken 之类的错误。在我的应用程序控制器中,我启用了protect_from_forgery。
我的搜索表单
路线:
当有人尝试通过我的搜索表单搜索网站并且他们禁用了 cookie并使用智能手机时,就会发生无效的令牌错误。我曾尝试使用禁用 cookie 的网络浏览器 (Firefox) 访问该网站,但效果很好。
我在我创建的“搜索引擎”上没有出现这种行为(以我无法在这个应用程序中使用的方式)所以出了什么问题。为什么只禁用智能手机和 cookie?
我能做些什么来完成这项工作?
ruby-on-rails - Rails CSRF 保护 + Angular.js:protect_from_forgery 让我在 POST 上注销
如果protect_from_forgery
在 application_controller 中提到了该选项,那么我可以登录并执行任何 GET 请求,但在第一个 POST 请求时,Rails 会重置会话,这会将我注销。
我protect_from_forgery
暂时关闭了该选项,但想将它与 Angular.js 一起使用。有没有办法做到这一点?
asp.net - asp.net 和跨站点请求伪造
我们最近运行了一个 Appscan 应用程序,报告显示在几页上:以下更改已应用于原始请求:
- 将 HTTP 标头设置为“ http://bogus.referer.ibm.com ”
推理:
相同的请求在不同的会话中发送了两次,并收到了相同的响应。这表明没有一个参数是动态的(会话标识符仅在 cookie 中发送),因此应用程序容易受到此问题的影响。
我对如何处理这个问题有点困惑,我应该只查看 Request.UrlReferrer 并确保它与 URL 中的主机相同,还是有更好的方法来处理这个问题?
谢谢。
ruby-on-rails - 如何通过 AJAX/更新操作安全地注册页面上的非路由点击?
我想注册网页上的各种点击,例如切换元素的可见性。
点击来自未登录的用户。
我有一个Impression
带有属性的模型,该actions
属性存储在某个页面上进行的操作的键值对。
在单击事件中,我正在使用此功能更新记录:
但我意识到这根本不安全,理论上用户可以更新她想要的任何记录。
我怎样才能更安全地做到这一点,我可以protect_from_forgery
在我的用例中以任何方式利用 Rails 吗?
ruby - Ruby:protect_from_forgery 何时提出?
我有以下代码:
我的疑问是什么时候protect_from_forgery
会被调用?什么时候创建 Foo 的实例?
提前致谢
smtp - SMTP 登录尝试检测
有没有办法检测 SMTP 登录,特别是那些在第一次尝试中没有成功的登录?当电子邮件客户端配置了保存密码选项时;smtp 访问失败的可能性太小。因此,如果 smtp 登录访问失败,我相信,这应该是一次无效/伪造尝试。
我如何知道用户是否正在尝试登录 SMTP?
unity3d - Rails protect_from_forgery 问题和 C#/unity3D 警告
我刚刚接触到 Rails 的protect_from_forgery,我为我的应用程序编写了一个简单的登录信息,如下所示:
客户端
在服务器端,在我的 application_controller.rb 我有
我已经尝试从页面登录,似乎还可以;至少我可以登录。但是,我有几个问题要问(我在 win OS 上)
我找不到关于protect_from_forgery 选项的任何细节;如果有任何一方能详细解释以下选项,我将不胜感激:null_session, if: Proc.new { |c| c.request.format == '应用程序/json' }
如何判断我的表单是否正在使用并通过 CSRF 身份验证?我可以从控制台的参数集中看到发送的表单有一个“authenticity_token”,是这个吗?如果是,它是如何生成/定义的?正如我所看到的,每次都是一样的。
另外,我有另一个应用程序(用 Unity3D c# 编写)在下面执行,连接到同一台服务器:
这一次,我的客户端仍然可以登录,但是从控制台我可以看到有如下警告
我已经对此进行了谷歌搜索,但似乎大多数答案是说我应该添加skip_before_filter :verify_authenticity_token
,但这只会绕过安全检查,不是吗?但是我需要在这里进行安全检查,所以这对我来说毫无意义......
我该如何解决这个问题并确保使用protect_from_forgery 检查我的登录会话?
提前感谢大家帮助我解决我的问题!:)
ruby-on-rails - Rails 引擎中的 ActionController::InvalidAuthenticityToken
我正在 Rails 中构建一个 saas 引擎。我在 account#create 方法上遇到以下错误(使用了warden gem):
我的应用程序控制器如下所示:
当更改protect_from_forgery with: :exception
为 :null_session 时,错误消失了,但我认为这不是解决此问题的正确方法,因为用户应该在此注册操作后登录,而 :null_session 仅适用于 API。
该网站也没有为正在注册的用户创建任何似乎不正确的 cookie。
有任何想法吗?