关于XSS和CSRF

XSS(跨站)指的是CMS/SNS类网站没有对用户输入进行安全过滤,导致用户可以上传恶意的html代码,并引诱此网站的其他用户访问包含了恶意代码的页面,导致用户信息泄露,甚至可以扩展为蠕虫病毒。

CSRF(跨域)指的是在攻击者控制的A网站上制作特定的URL链接,理论上来讲,受害者(用户)如果点击这个链接,会导致对目标B网站的访问,而用户可能当前浏览器Tab页面中B网站处于登录状态,这样就会导致用户在不知情的情况下执行了“添加黑客haha为好友”这样的操作。甚至有可能更危险的操作。

预防CSRF应该保证下面的原则:
(1)浏览器可以直接禁止从A到B的跳转,除非定义了CSP;
规范里有个特殊的OPTIONS in-flight请求,用于验证后者B是否允许来自前者A的跨域访问。
(2)服务器端后端编程,对HTTP GET禁止修改数据的请求(只允许POST),但是CSRF可以用户在A上点击触发为一个到B的Ajax POST请求,所以这个只是来自REST的建议。

你可能感兴趣的:(读书笔记)