1.问题描述
在做一个点击本系统的一个按钮打开第三方链接并跳转新页面,跳转过去的第三方链接由https://ip地址组成,报以下错:The Http request is not acceptable for the requested resource.
2.解决方法
网上找的解决方案大多数都是通过a标签跳转直接将noreferrer设置到a标签上
< a href=" " target="_blank" rel="noreferrer">跳转</a>
但我是用的window.open()跳转没有用a标签,研究半天解决方法如下:
window.open(url,"_blank","noopener=yes,noreferrer=yes");
ok,完美解决!
3.分析原因
出现上面问题是因为跳转的第三方链接设置了安全策略,可能nginx设置了
add_header Referrer-Policy "strict-origin-when-cross-origin"
Referrer Policy控制Refer头的行为,Refer头表示请求的来源或网页的URL。网络应用程序使用不安全的引用者策略配置,可能会将用户的信息泄露给第三方网站。strict-origin-when-cross-origin代表对于同源的请求,会发送完整的URL作为引用地址;在同等安全级别的情况下,发送文件的源作为引用地址(HTTPS->HTTPS);在降级的情况下不发送此首部 (HTTPS->HTTP)。因此当发现请求不安全时会降级从而导致访问出错。要增加 nofollow noopener noreferrer 来堵住钓鱼安全漏洞。