- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图理解为什么 CORS 会以这种方式工作。
正如我从 this post 学到的,当来自 www.a.com 的页面向 www.b.com 发出 AJAX 请求时,则由 www.b.com 决定是否应允许请求。
但是在这种模型中,客户端到底能得到什么保护呢?例如,如果黑客成功对我的页面进行 XSS 脚本注入(inject),那么它就会向他的域发出 AJAX 请求来存储用户数据。所以黑客的域名肯定会允许这样的请求。
我认为 www.a.com 应该决定允许请求发送到哪些域。因此,理论上,我想在 header Access-Control-Allow-Origin 中放置 AJAX CORS 请求允许的域的完整列表。
有人可以解释一下当前 CORS 实现处理哪些安全问题吗?
最佳答案
As I learned from this post, when page from
www.a.com
makes AJAX request towww.b.com
, then it's thewww.b.com
that decides if request should be allowed or not.
不完全是。该请求未被阻止(至少,如果它是 simple )。
默认情况下,禁止在 www.a.com
上运行的 JavaScript 访问来自 www.b.com
的响应。
CORS 提供了一种方法,www.b.com
可以向 www.a.com
上的 JavaScript 授予访问响应的权限。
But what is exactly secured on client in such model?
它阻止 www.a.com
的作者使用访问过这两个网站且已访问过这两个网站的用户的浏览器从 www.b.com
读取数据。在 www.b.com
上进行身份验证(因此可以访问非公开的数据)。
例如,Alice 登录到 Google。 Alice 访问 malicious.example
,它使用 XMLHttpRequest 访问来自 gmail.com
的数据。 Alice 有一个 GMail 帐户,因此响应中包含她收件箱中最新电子邮件的列表。同源策略可防止 malicious.example
读取它。
For example, hacker success to make XSS script injection to my page, then it makes AJAX request to his domain to store user data. So hackers domain will allow such request for sure.
正确。 XSS 是一个不同的安全问题,需要从源头解决(即在 www.a.com
上而不是在浏览器中)。
关于javascript - 了解 AJAX CORS 和安全注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21854516/
我是一名优秀的程序员,十分优秀!