CSRF CORS学习

CORS

说到跨域,我想很多程序员都遇到过。
跨域简单来说就是在一个页面上发起一个请求,这个请求的域名、端口或者协议不同时就会出现跨域问题。
常见的加载静态资源的标签浏览器默认允许跨域(HTTP协议页面不能加载HTTPS的资源):script、link、iframe、img。
ajax请求会严格的审核跨域信息。

CSRF

跨站攻击,这个东西,说简单一点就是网站A直接跳转到网站B,对于用户浏览器来说,跳转过去时会携带用户在网站B上面的cookie、session等信息,这样可以达到用户在B网站操作的效果。比如:添加购物车、支付等。
这个解决办法:

  1. 验证请求发起页面。
  2. 对于请求添加一个token验证。

如果以前网站,设置了运行跨域请求,同时运行携带验证信息,那么可能就会出现,如果用户浏览器存在网站B的登陆信息,网站A,可以不用跳转到网站B,直接使用ajax就可以实现用户在网站B上面进行操作。

还有一个叫做XSS攻击,这个就是跨站脚本,常见比如BBS,用户提交帖子里面含有一段JS代码,其他用户浏览时就会执行这个JS代码。
解决办法过滤掉这些代码即可。