我试图通过将会话令牌(服务器将通过浏览器cookie进行匹配)作为参数附加到我的Web应用程序发出的每个AJAX请求中,来保护AJAX调用的安全。
我想避免在每个Ajax.Updater()
请求中都必须将令牌指定为附加参数,因为这可能会非常麻烦。因此,我认为将令牌自动全局附加到每个请求中可能会更有效。
我想知道Ajax.Responder
是否可以处理这个问题。似乎它应该能够在发出任何Ajax请求之前对其进行拦截,并可以在发送出去之前修改参数以添加令牌。但是,我不知道如何去完成它。我需要原型化“ Ajax.Responder”并“烧入”附加参数吗?还是有更简单的方法?
我对Ajax.Responder
的理解有些薄弱,因此,如果有人可以澄清为什么在答案中可能或不可能这样做,将不胜感激。
最佳答案
原型会在调用Responders回调之前设置参数数组,因此您不能仅将所需的项添加到参数哈希中。您可以将变量附加到url,例如,这将向每个请求添加缓存无效化随机数...
Ajax.Responders.register({
onCreate: function(o,x) {
o.url += (o.url.include('?') ? '&' : '?') + "rnd=" + Math.floor(Math.random()*1000000000);
}
});