gpt4 book ai didi

ruby-on-rails-3 - Rails - "WARNING: Can' t 验证 json 设备请求的 CSRF token 真实性

转载 作者:行者123 更新时间:2023-12-03 05:11:56 24 4
gpt4 key购买 nike

如何检索 CSRF token 以通​​过 JSON 请求传递?

我知道出于安全原因Rails is checking the CSRF token所有请求类型(包括 JSON/XML)。

我可以放入我的 Controller skip_before_filter :verify_authenticity_token ,但我会失去 CRSF 保护(不建议:-))。

这个类似(还没接受)answer建议

Retrieve the token with <%= form_authenticity_token %>

问题是如何?我是否需要首先调用我的任何页面来检索 token ,然后使用 Devise 进行真正的身份验证?或者它是我可以从我的服务器获取然后一致使用的一次性信息(直到我在服务器本身上手动更改它)?

最佳答案

编辑:

在 Rails 4 中,我现在使用 @genkilabs 在下面的评论中建议的内容:

protect_from_forgery with: :null_session, if: Proc.new { |c| c.request.format == 'application/json' }

这不是完全关闭内置安全性,而是终止当某些内容在没有 CSRF token 的情况下访问服务器时可能存在的任何 session 。

<小时/>

skip_before_filter :verify_authenticity_token, :if => Proc.new { |c| c.request.format == 'application/json' }

这将关闭对已正确标记的 json posts/puts 的 CSRF 检查。

例如,在 iOS 中,将以下内容设置为 NSURLRequest,其中“parameters”是您的参数:

<小时/>
[request setHTTPMethod:@"POST"];

[request setValue:@"application/json"
forHTTPHeaderField:@"content-type"];

[request setValue:@"application/json"
forHTTPHeaderField:@"accept"];

[request setHTTPBody:[NSData dataWithBytes:[parameters UTF8String]
length:[parameters length]]];

关于ruby-on-rails-3 - Rails - "WARNING: Can' t 验证 json 设备请求的 CSRF token 真实性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9362910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com