如何在Apache和Nginx中启用CORS?

如果您想暴露Origin头。

add_header Access-Control-Expose-Headers "Origin";

Access-Control-Max-Age

您知道来自Access-Control-Allow-HeadersAccess-Control-Allow-Methods头的数据可以被缓存吗?在Firefox中可以缓存高达24小时,在Chrome(76+)中可以缓存2小时。

要禁用缓存,您可以将值保留为-1

Apache

缓存15分钟。

Header always set Access-Control-Max-Age "900"

如您所见,值以秒为单位。

Nginx

缓存一小时。

add_header Access-Control-Max-Age "3600";

添加后,重新启动Nginx以查看结果。

Access-Control-Allow-Credentials

这里只有一个选项-true。This是允许暴露凭据,如cookies、TLS证书、授权等。

Apache

Header always set Access-Control-Allow-Credentials "true"

Nginx

add_header Access-Control-Allow-Credentials "true";

并查看结果。

验证结果

一旦添加了必要的头信息,您可以使用浏览器内置的开发者工具或一个online HTTP header checker来验证。

结论

我希望以上内容能帮助您在Apache HTTP和Nginx Web服务器中实现CORS头以提供更好的安全性。您可能还有兴趣应用OWASP recommended secure headers

类似文章