gpt4 book ai didi

ruby-on-rails - iframe 导致无法验证 Rails 中的 CSRF token 真实性

转载 作者:行者123 更新时间:2023-12-01 01:01:54 25 4
gpt4 key购买 nike

我有一个使用 Windows Phone 8 SDK 的 Phonegap 2.3.0 通过 iframe 加载的 Web 应用程序。通过 iframe 加载它的问题是,当我发送 $.post() 请求时,它会导致 Rails 端无法验证 CSRF token 真实性。 p>

我尝试了几种方法,例如覆盖 $.post() 以使用 $.ajax()setHeaderRequest 以及 token ,还有 $.ajaxSetup()

当我禁用 protect_from_forgeryverify_authenticity_token 时,应用程序会正确加载。

我认为该问题是由于 web 应用程序位于另一个域(跨域问题)而引起的,而 csrf 只是试图防止点击劫持。有办法绕过这个问题吗?

以下是我如何发帖的示例:

    $.post(url, {app: {played: tiles}, no: no}, function (response) {
linkTo('#app_button', response['next']);
});

示例:

    $.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').prop('content'));
}
});

编辑:我已经能够将真实性 token 作为参数传递到我的发布请求中,但出现相同的错误。我开始相信错误不是由 token 引起的。发生错误的其他原因是什么?

日志:

[2539 - 2013/03/06 15:37:42] (INFO)   Parameters: {"app"=>{"played"=>"tiles"}, "no"=>"no", "authenticity_token"=>"yBpUImzjtKGIejh/WCekv/GCi1zjPirib22plqfLJ1Y="}
[2539 - 2013/03/06 15:37:42] (WARN) WARNING: Can't verify CSRF token authenticity
[2539 - 2013/03/06 15:37:42] (INFO) User agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)
[2539 - 2013/03/06 15:37:42] (DEBUG) User Load (1.8ms) SELECT `users`.* FROM `users` WHERE `users`.`id` IS NULL LIMIT 1
[2539 - 2013/03/06 15:37:42] (DEBUG) CACHE (0.0ms) SELECT `users`.* FROM `users` WHERE `users`.`id` IS NULL LIMIT 1
[2539 - 2013/03/06 15:37:42] (DEBUG) CACHE (0.0ms) SELECT `users`.* FROM `users` WHERE `users`.`id` IS NULL LIMIT 1
[2539 - 2013/03/06 15:37:42] (WARN) Lost session [118.143.97.82] (/locations/1/games) - Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)
[2539 - 2013/03/06 15:37:42] (DEBUG) CACHE (0.0ms) SELECT `users`.* FROM `users` WHERE `users`.`id` IS NULL LIMIT 1

最佳答案

答案是因为没有 P3P header 阻止了 session 存储。您需要添加 P3P header 来解决此问题。

关于ruby-on-rails - iframe 导致无法验证 Rails 中的 CSRF token 真实性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15239818/

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