我试图通过将会话令牌(服务器将通过浏览器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);
  }
});

10-05 21:05
查看更多