Dav*_*d C 5 ruby ajax jquery ruby-on-rails csrf
在rails中是否有任何规定允许来自站点的所有AJAX POST请求在没有authenticity_token的情况下通过?
我有一个调用控制器方法的Jquery POST ajax调用,但我没有在其中放入任何真实性代码,但调用成功.
我的ApplicationController确实有'request_forgery_protection',我已经改变了
config.action_controller.consider_all_requests_local
Run Code Online (Sandbox Code Playgroud)
在我的环境/ 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 + " ");
}
});
};
Run Code Online (Sandbox Code Playgroud)
我有一个链接,然后有一个调用上述函数的'href:
<a href='javascript:voteup(param1,param2)'>...</a>
Run Code Online (Sandbox Code Playgroud)
小智 6
这里可能的一个场景是你使用jQuery来序列化一个普通的Rails表单......它包含了序列化的auth令牌隐藏字段(Rails将它们添加到所有表单中).
查看您提交的表单的生成源...很可能您会看到
<input name="authenticity_token" type="hidden" value="somethinghere...." />
Run Code Online (Sandbox Code Playgroud)
您可以做的另一件事是检查日志以查看authenticity_token字段是否在请求参数中.