如果不使用www,X-Frame-Options ALLOW-FROM不起作用

问题描述 投票:0回答:1

Angular 7,IIS 7,C#.NET Core,FireFox

对于我的网站:https://www.example.com,如果用户使用https://example.com,x帧失败(注意没有www)

我正在构建的标题是:Headers.Add(“X-frame-options”,“ALLOW FROM https://www.example.com,https://example.com”);

我已经尝试了很多迭代,无论我尝试什么,我都无法让它同时工作:https://www.example.com https://example.com

x-frame-options
1个回答
1
投票

the specification

不允许在一个ALLOW-FROM语句中声明多个域的通配符或列表

Usage Design Pattern and Example Scenario for the ALLOW-FROM Parameter

  1. 想要在帧中呈现所请求内容的页面将其自己的原始信息提供给服务器,该服务器通过查询字符串参数提供要成帧的内容。

例如在URL上使用查询字符串。

  1. 服务器验证主机名是否符合其条件,以便允许页面由目标资源构成。例如,这可以通过查找允许构建页面的可信域名的白名单来实现。例如,对于Facebook“赞”按钮,服务器可以检查所提供的主机名是否与该“赞”按钮所期望的主机名匹配。
  2. 如果在步骤#2中满足适当的标准,则服务器在“X-Frame-Options:ALLOW-FROM”中返回主机名。
  3. 浏览器强制执行“X-Frame-Options:ALLOW-FROM”标头。

请注意,X-Frame-OptionsContent Security Policy (CSP) 取代,其中frame ancestors directive允许您提供列表。


也就是说,在www.example.comexample.com上托管相同的网站并没有多大意义。选择其中一个是规范的,并从另一个发出301重定向到它。

然后你只需要在X-Frame-Options中允许规范的那个。

© www.soinside.com 2019 - 2024. All rights reserved.