http://cheeaun.github.io/hackerweb/#/item/6821999
用 GET 的 UJS 有泄露敏感数据的风险,原理类似 JSONP。
现在 Rails Core 还没有定论要怎么处理。
感觉…… ……这样干的都很少了……
反正我用 jQuery 之后从来都没这样干过……
#1 楼 @Kabie 我还在这样干……
我觉得 JSONP leak 和 UJS leak 这两个相关的事件上,homakov 有些小题大做。
在使用 JSONP 解决跨域问题时,开发者首先要考虑的是,自己可以跨域了,同时也给了攻击者跨域的机会。跨域传输的内容是否敏感,是否有修改资源行为,这是需要开发者去权衡的。对于确实有敏感内容和修改资源行为的 jsonp 请求,可以参考这里的最后面一节所提的方案解决。
回到 UJS,对于修改资源的请求,一般正确使用 HTTP verb 就没问题..因为有 CSRF 防御。如果真是获取私有内容,验证一下request.xhr?或验证 csrf_token 同样解决问题。
request.xhr?
http://edgeguides.rubyonrails.org/4_1_release_notes.html#csrf-protection-from-remote-script-tags