CORS 代理网站如何工作?

信息安全 http 代理人 科尔斯
2021-08-19 08:22:04

在我开发 Web 项目的前端时,我遇到了 CORS 保护错误。这并不奇怪,因为我的前端项目不在同一个来源。在搜索了如何绕过 CORS 保护之后,我找到了一些代理网站。

我不想提及网站名称,但它们通常以这种格式工作:

https://acorsproxywebsite.com/https://example.com

当我发送这个请求时,我能够发送 GET 请求并从任何禁用 CORS 的网站接收响应。

CORS 代理网站如何绕过保护并从任何跨源获得响应?为什么他们可以成功发送请求而我不能?是否可以实现类似的结构,以便我可以绕过前端的 CORS 保护?

1个回答

CORS 策略由浏览器执行,而不是由服务器执行。服务器只是设置了几个 HTTP 标头,告诉浏览器它希望它如何表现。没有什么可以强制代理服务器遵守这些标头,它可以像使用任何其他标头一样添加、编辑或删除它们。

因此代理可以发送请求,但您不能,因为作为前端开发人员,您会受到浏览器对您的限制。没有办法解决这个问题。您要么必须在后端设置适当的 CORS 标头,要么必须继续依赖代理。

那么,如果可以通过简单的代理绕过 CORS 和整个同源策略,那么它是否无用?不!由于现在向acorsproxywebsite.com任何 cookie 或其他身份验证信息example.com发出请求,因此浏览器不会自动将其包含在请求中。这意味着代理服务器只暴露自己可以看到的东西,而不是其他潜在受害者可以看到的东西。