地址:https://gist.github.com/nightire/5227819
昨天开始整理 Rails 4 带来的新变化,分享给大家。写这个挺累的,要到处找资料,所以速度不是很快,请多包涵!文档的大纲基于 Code School 的 Rails 4 教程(没钱订阅的兄弟至少能看个总结了),然后扩充我知道的和能找到的其他内容,欢迎大家来纠错和补充,让这份文档更完善。
有朋友问我第一点是不是想说 CSRF 而不是什么 XSS,我估计可能大家 Rails 用得多了,对 CSRF 比较敏感,实际上它和 XSS 是有区别的。当然了,若非我看了 CodeSchool 的新教程,我可能也不知道这个区别,所以第一点并没有“写”错——因为我是按照 CodeSchool 的说法来写的。当然,我也觉得例子中的 GET 更像是 请求伪造 而不是 脚本攻击,所以我已经向 CodeSchool 提交了 Issue,具体对错与否请等待对方的答复。
具体的区别请大家移步 Wikipedia:CSRF 和 XSS
核心的区别总结一句话就是:
Unlike cross-site scripting (XSS), which exploits the trust a user has for a particular site, CSRF exploits the trust that a site has in a user's browser.
另外,我发现多数人把 CSRF 称作:跨站脚本攻击,这实际上是不太准确的。真正的跨站脚本攻击是 XSS,CSRF 或许应该翻译成跨站请求伪造
跨站脚本攻击发生的前提是你可以不在目标网站内,只要你知道目标网站(及其可以被利用的漏洞就可以);而跨站请求伪造则是发生于已经在浏览器里打开的站点,重点就在“请求”两字。
另有一篇博客解释地也比较清晰:
http://intrepidusgroup.com/insight/2007/09/csrf-is-not-xss/
第一点是 CSRF,而不是 XSS。CodeSchool 已经证实他们的视频教程有误,应该很快就会修正。
对给大家带来的困扰表示歉意,原文已经做出改正。