同源策略仅适用于 XMLHttpRequest?
Same-Origin Policy is only for XMLHttpRequest?
我想同源策略不适用于 HttpRequest,因为在任何网页上,我都可以从其他域获取资源,如下所示:
<img src="http://anotherDomain.com/pic.jpg">
那么,同源策略是否只针对 XMLHttpRequest?
而 XMLHttpRequest 只能通过 Ajax 运行 从浏览器发送?
同源政策适用于使来自另一个来源的内容可供 JavaScript 使用的所有内容。
HTTP 请求的响应就是这样一个例子。获取用于 canvas 的图像数据是另一回事。
直接在页面中直接显示来自另一个源的内容是可以的,因为它不能被页面中的脚本传递。
理解同源策略的重要原则是,
[it] prevents a malicious script on one page from obtaining access to sensitive data on another web page through that page's Document Object Model.
如所述 here. In other words, script execution in any form on the browser side (including images loaded from foreign origin to be used in a canvas) 应遵守此政策,以防止损害客户数据(如 cookie)的机密性或完整性。
So, is Same-Origin Policy only for XMLHttpRequest?
除了XMLHttpRequest,它还适用于其他客户端web技术,如silverlight、flash、javaapplet、googlegears等,如前所述here .
And XMLHttpRequest can only be sent by Ajax running from a browser?
XMLHttpRequest 本质上是一个 javascript 对象。 So anything that can execute javascript 可用于发送 XMLHttpRequest。
我想同源策略不适用于 HttpRequest,因为在任何网页上,我都可以从其他域获取资源,如下所示:
<img src="http://anotherDomain.com/pic.jpg">
那么,同源策略是否只针对 XMLHttpRequest? 而 XMLHttpRequest 只能通过 Ajax 运行 从浏览器发送?
同源政策适用于使来自另一个来源的内容可供 JavaScript 使用的所有内容。
HTTP 请求的响应就是这样一个例子。获取用于 canvas 的图像数据是另一回事。
直接在页面中直接显示来自另一个源的内容是可以的,因为它不能被页面中的脚本传递。
理解同源策略的重要原则是,
[it] prevents a malicious script on one page from obtaining access to sensitive data on another web page through that page's Document Object Model.
如所述 here. In other words, script execution in any form on the browser side (including images loaded from foreign origin to be used in a canvas) 应遵守此政策,以防止损害客户数据(如 cookie)的机密性或完整性。
So, is Same-Origin Policy only for XMLHttpRequest?
除了XMLHttpRequest,它还适用于其他客户端web技术,如silverlight、flash、javaapplet、googlegears等,如前所述here .
And XMLHttpRequest can only be sent by Ajax running from a browser?
XMLHttpRequest 本质上是一个 javascript 对象。 So anything that can execute javascript 可用于发送 XMLHttpRequest。