gpt4 book ai didi

javascript - 如果来源不在允许的来源列表中,服务器应如何响应 CORS 请求?

转载 作者:行者123 更新时间:2023-12-03 11:23:19 25 4
gpt4 key购买 nike

在我的例子中,客户端从服务器请求的不是简单的 html 页面或 JavaScript,而是调用一些服务器端方法。
这些方法将在服务器上执行一些事件 - 打印文档、存储到数据库等。仅当请求的来源位于允许的来源列表中时,服务器才应执行这些操作。
否则,服务器应向客户端响应来源不在允许的来源列表中。
怎样做才正确呢?将响应 header Access-Control-Allow-Origin 设置为“null”?或者根本不在响应中设置 Access-Control-Allow-Origin header ?
在这种情况下应该设置什么响应代码? 200、401、...?

最佳答案

Cross Origin Resource Sharing是“选择加入”,这意味着如果您愿意启用它,您只能将 CORS header 放入响应中。如果您不设置 CORS header ,浏览器将使某些攻击变得更加困难,但您仍然需要保护您的后端服务器免受 Cross-Site Request Forgery (CSRF) .

您可以通过检查请求的 RefererOrigin 并拒绝请求、返回 Forbidden 状态等方式来保护自己。事实是:浏览器将在向您的网站发出请求之后查看 CORS header ,因此,如果您碰巧修改了任何内容,即使您告诉浏览器不允许其来源,也会发生这种情况.

浏览器可能会在发送其他危险动词(DELETEPUTPOST)之前发出 OPTIONS 请求,但是你押注浏览器会做正确的事情。此外,任何人都可以使用 cURL 等简单工具向您的网络服务器发送任何 HTTP 请求。 .

使用其他方法保护您的后端服务器,例如仅在请求具有第三方无法猜测的访问 token 时才发出命令。如果您不打算与其他域共享您的服务,请在处理任何包含 CORS header 的请求之前拒绝它们。

关于javascript - 如果来源不在允许的来源列表中,服务器应如何响应 CORS 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27019107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com