图片AJAX跨域请求

http://www.youhutong.com/index.php/article/index/136.html

https://segmentfault.com/q/1010000011221200

https://www.zhihu.com/question/19618769   很详细多方面

https://www.zhihu.com/question/20138568

简单的说,你把Cookie托付给浏览器保存,浏览器要保证你的Cookie不被恶意网站利用。

同源策略并不能防止DDos,因为跨域的Ajax也会被请求,如果http://Evil.com用Ajax请求http://MyBank.com,浏览器会先发出请求,并且带上http://MyBank.com的Cookie。拿到http://MyBank.com的响应之后(可能有敏感数据),浏览器才会根据Header里的Access-Control-Allow-Origin决定是否把结果交给http://Evil.com里的脚本。(或者先发一个OPTIONS请求看一下CORS设置,再决定是否要发真正的请求。)

因此浏览器只是起到了最基本的防御,在写程序的时候还是要注意防御CSRF,比如关键操作不要用GET,POST请求要做额外的验证(验证码,随机数,Refer,Token)等等。


我理解你说的意思,但是同源策略的实现并不是请求不被允许,而是阻止了数据的接受。也就是说ajax的同源策略并不能阻止你的假设的情况,目标网站一样会被ddos。就说你的例子,假设12306为发送源,你的一次请求违背了同源策略,看起来是被拒绝的。但实际上,目标站接受到了请求并响应,只是响应报文被解析的时候发现违背了同源策略从而被浏览器拒绝。
posted @ 2018-04-20 17:26  Newman·Li  阅读(289)  评论(0编辑  收藏  举报