我看到了跨域ajax调用的安全风险,
但我认为真正的问题是浏览器的cookie
自动发送到目标跨域。
那么,为什么浏览器不能仅仅在跨域js请求的情况下发送cookie而不是完全阻止该请求呢?
我希望我的问题有意义。
编辑:
来自:policy
虽然这是真的,但JavaScript没有直接访问银行会话cookie的权限,但它仍然可以使用银行站点的会话cookie发送和接收对银行站点的请求,这实际上是银行站点的正常用户。关于新交易的发送,即使银行网站对CSRF的保护也没有任何效果,因为脚本只会像用户所做的那样做。
因此,假设我登录了facebook,同时访问了一个使用跨站点请求到facebook窃取关于我的信息的网站,我的意思是,它可以这么做的唯一原因是因为浏览器在请求中包含了合法的cookie,我错了吗?
发布于 2016-05-21 14:10:44
你的想法很混乱。
cookie只是存储在客户端的缓存信息。简单地说,它是由浏览器管理的数据,而具体的浏览器所做的事情就是他们所做的。例如,IE将cookie存储在单独的文本文件中,Firefox使用单个文件,Crome使用SQLite3数据库。
我建议你阅读:Why is the same origin policy important?
您可以发送跨域的Get请求,有几种方法。我使用了一个代理,它添加了所需的头,或者只是Jsonp。例如,在.net中,后者要求您添加一个获取json回调函数的json格式化程序。
如果您有与网页的双向沟通,这是不需要的。您可以在服务器端管理状态,并根据您的意愿执行服务器端的“推送”请求。在html5之前,您需要组件来完成这个任务: java、flash、silverlight或.
我希望我的回答对你有意义。
https://stackoverflow.com/questions/37363445
复制相似问题