Ajax 从安全角度来看,访问控制允许源标题的建议值是多少

Ajax 从安全角度来看,访问控制允许源标题的建议值是多少,ajax,http,cors,Ajax,Http,Cors,我不想任何跨域调用我的域。在这种情况下, 1) 相同原点是否为标头的有效值访问控制允许原点 2) 如果是,是否从安全角度考虑此值 3) 如果没有,我应该将其硬编码到mydomain.com吗?这取决于您的应用程序体系结构。 假设您正在开发一个系统,其中您的web应用程序位于具有不同域的不同服务器上,而您的服务应用程序(RESTAPI)位于具有不同域的不同服务器上 然后,仅允许相同原点将不起作用。您需要从web应用程序进行跨域调用 因此,根据您的项目架构,做出这样的决定会有所不同。 如果您确定哪些

我不想任何跨域调用我的域。在这种情况下,

1) 相同原点是否为标头的有效值访问控制允许原点

2) 如果是,是否从安全角度考虑此值


3) 如果没有,我应该将其硬编码到mydomain.com吗?这取决于您的应用程序体系结构。 假设您正在开发一个系统,其中您的web应用程序位于具有不同域的不同服务器上,而您的服务应用程序(RESTAPI)位于具有不同域的不同服务器上

然后,仅允许相同原点将不起作用。您需要从web应用程序进行跨域调用

因此,根据您的项目架构,做出这样的决定会有所不同。
如果您确定哪些域将访问该资源或REST API,那么您可以将其限制为所需的特定域。

如果您不希望任何跨域请求,只需在响应中不发送任何CORS响应头即可-这很简单

具体答案,如果您确实希望允许某些域(例如您控制的域)允许跨域请求:

1) “同一原点”是否为标头访问控制“允许原点”的有效值

否,
Access Control Allow Origin
(又名“ACAO”)头的唯一有效值是
Access Control Allow Origin:
(允许任何请求域)或
Access Control Allow Origin:scheme://domain[:port]
与原始请求标头的值完全匹配。基本上,您要么返回一个星号,要么只是“镜像回”原始请求头的值

2) 如果是,是否从安全角度考虑此值

如果问题是“访问控制的值是否允许原点:安全?”,答案是它完全取决于您的设置。您是否需要传递身份验证信息(cookies、身份验证标头等)?你想干什么?“安全”这个词在这里不太合适。传递值
*
意味着来自任何域的请求都可以检索您的资产或调用您的API。这是个问题吗

3) 如果没有,我应该将其硬编码到mydomain.com吗

如果这样做,则必须包括该方案(以及端口,如果不是80(对于HTTP)或443(对于HTTPS))

如果有疑问,请执行以下操作(伪代码):


如果您不想允许跨源请求到您的域,则根本不发送回访问控制允许源响应头。同源策略已经阻止前端JavaScript代码访问来自跨源请求的响应。Access Control Allow Origin response标头的目的是让服务器告诉浏览器,他们希望选择告诉浏览器在某些情况下不要强制执行对同一来源的保护策略——有些情况下,他们希望允许前端JavaScript代码访问跨来源请求的响应。
if (Origin header matches "*.mydomain.com" or Origin header matches "*://mydomain.com") {
    addheader("Access-Control-Allow-Origin:" + [Origin header])
{