哪个服务器需要返回Access-Control-Allow-Origin报头
Which server needs to return Access-Control-Allow-Origin header?
假设我有一个HTML页面,从example.com提供。它向targetServer.com发出一个javascript ajax请求
哪个服务器需要返回Access-Control-Allow-Origin="(某物)"?
是targetServer还是提供原始HTML页面(即example.com)的服务器?
[我知道这可能是显而易见的,但是web上的文档似乎暗示targetServer必须发送和"example.com"的allow-origin头,但如果这是一个安全功能,恶意的targetServer.com不总是提供一个合适的allow-origin头吗?example.com会给浏览器提供一个服务器列表这是有道理的除了example.com之外它还可以调用]
目标服务器需要设置Access-Control-Allow-Origin
标头。
CORS旨在保护服务器免受意外的跨域请求。在CORS出现之前,服务器是通过浏览器的同源策略来防止跨域请求的。如果自动允许所有服务器使用CORS,那么这种同源契约将被破坏,服务器将接收到意想不到的请求。为了防止这种情况,CORS规范的作者让服务器负责规定允许哪些类型的跨域请求。
服务器不仅可以使用Access-Control-Allow-Origin
头,还可以使用Access-Control-Allow-Credentials
, Access-Control-Allow-Methods
, Access-Control-Allow-Headers
和Access-Control-Expose-Headers
头。这些不同的标头为服务器提供了对配置CORS行为的细粒度控制。
所以在你的例子中,恶意服务器可以设置这些标头,但标头不会自己做任何事情。客户机需要有意识地做出决定,以便向恶意服务器发送请求。实际上,客户机本身需要是恶意的。
你误解了安全问题。
CORS的目的是防止其他网站的Javascript从你的网站读取敏感信息。
因此,你的网站必须明确说明哪些来源可以读取它的数据
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- 如何在d3.js中返回路径的y坐标
- 如何从jquery函数返回变量
- Angular js-返回一个包含类似
- JSONP请求返回结果,但也触发error_callback
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- Yahoo - OAuth2 - SocialAPI:在初始响应中不返回“Access-Control-Allow-Or
- 返回 XMLHttpRequest 的 RequireJS + NodeJS 无法加载“http”,没有“Access-
- 可以't access从handontable返回json数据
- 获取请求到watson语音分析器api返回No 'Access-Control-Allow-Origin'
- 哪个服务器需要返回Access-Control-Allow-Origin报头
- Web API CORS没有返回正确的Access-Control-Allow-Origin报头
- 客户端服务器号'Access-Control-Allow-Origin'当从自己的域返回json时