nginx解决strict-origin-when-cross-origin
时间: 2023-08-30 14:09:39 浏览: 755
"strict-origin-when-cross-origin" 是一个安全策略,用于防止跨站点数据泄露。当使用此策略时,浏览器将发送 Referer 标头,但只包含源站点,而不包含路径和查询参数。
如果你想在 nginx 中解决 "strict-origin-when-cross-origin" 问题,可以使用以下方法:
1. 在 nginx 配置文件中添加以下代码:
```
add_header Referrer-Policy strict-origin-when-cross-origin;
```
这将在响应头中添加 "Referrer-Policy" 标头,并将其设置为 "strict-origin-when-cross-origin"。
2. 如果你使用的是 HTTPS,可以将以下代码添加到 nginx 配置文件中:
```
proxy_set_header Referer "";
```
这将在转发请求时删除 Referer 标头,从而避免跨站点数据泄露的问题。
以上两种方法都可以解决 "strict-origin-when-cross-origin" 问题,具体选择哪种方法取决于你的具体情况。
相关问题
nginx 解决 strict-origin-when-cross-origin 跨域
为了解决`strict-origin-when-cross-origin`跨域问题,可以在nginx配置文件中添加以下内容:
```
location / {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
#
# Custom headers and headers various browsers *should* be OK with but aren't
#
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
#
# Tell client that this pre-flight info is valid for 20 days
#
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
}
```
这段代码会在nginx的配置文件中添加跨域处理的相关配置,包括允许的请求方法、请求头、响应头等信息。其中`Access-Control-Allow-Origin`设置为`*`表示允许所有来源的请求访问该资源。
nginx:strict-origin-when-cross-origin
nginx:strict-origin-when-cross-origin是一种跨域问题,主要出现在使用Nginx进行反向代理时,通过HTTPS访问前端页面,但后端HTTP服务无法正常访问的情况。这个问题导致很多资源无法加载,可能是由于缺少适当的CORS(跨域资源共享)设置所致。CORS是一种用于在浏览器中实现跨域访问的机制。
解决这个问题的方法是设置反向代理服务器的HTTP响应头Access-Control-Allow-Origin,允许指定的域名进行跨域访问。你可以在Nginx配置文件中添加以下内容:
```
location / {
add_header Access-Control-Allow-Origin $http_origin;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Credentials true;
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Headers 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header Access-Control-Max-Age 1728000;
add_header Content-Type text/plain charset=UTF-8;
add_header Content-Length 0;
return 204;
}
}
```
以上配置将允许所有来源的请求进行跨域访问,你也可以根据需要修改add_header Access-Control-Allow-Origin的值来限制来源。
通过添加适当的CORS设置,你应该能够解决nginx:strict-origin-when-cross-origin的问题,并正确加载后端HTTP服务所需的资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
阅读全文