如何在Apache和Nginx中启用CORS?
如果您想暴露Origin
头。
add_header Access-Control-Expose-Headers "Origin";
Access-Control-Max-Age
您知道来自Access-Control-Allow-Headers
和Access-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。