在rails中是否有任何规定允许来自站点的所有AJAX POST请求在没有authenticity_token的情况下通过?
我有一个调用控制器方法的Jquery POST ajax调用,但我没有在其中放入任何真实性代码,但调用成功.
我的ApplicationController确实有'request_forgery_protection',我已经改变了
config.action_controller.consider_all_requests_local
在我的环境/ development.rb中为false
我还搜索了我的代码以确保我没有超载ajaxSend来发送真实性令牌.
是否有一些机制在禁用检查?现在我不确定我的CSRF保护是否有效.
我正在使用Rails 2.3.5.
更新清晰度:
function voteup(url, groupid){ $.ajax({ type: "POST", url: "/groups/" + groupid + "/submissions/voteup", data: "url=" + url, dataType: 'text', success: function(data){ var counter = "vote_" + url; $('#vote_' + url.cleanify()).text(" " + data + " "); } }); };
我有一个链接,然后有一个调用上述函数的'href:
...
小智.. 6
这里可能的一个场景是你使用jQuery来序列化一个普通的Rails表单......它包含了序列化的auth令牌隐藏字段(Rails将它们添加到所有表单中).
查看您提交的表单的生成源...很可能您会看到
您可以做的另一件事是检查日志以查看authenticity_token字段是否在请求参数中.
这里可能的一个场景是你使用jQuery来序列化一个普通的Rails表单......它包含了序列化的auth令牌隐藏字段(Rails将它们添加到所有表单中).
查看您提交的表单的生成源...很可能您会看到
您可以做的另一件事是检查日志以查看authenticity_token字段是否在请求参数中.