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

时间:2019-03-19 06:53:11

标签: x-frame-options

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

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

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

我已经尝试了无数次迭代,无论我尝试什么,我都无法使其同时适用: https://www.example.com https://example.com

1 个答案:

答案 0 :(得分:1)

请参见the specification

  

通配符或列表以在一个ALLOW-FROM中声明多个域      声明

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

  
      
  1. 想要在框架中呈现请求的内容的页面      将自己的来源信息提供给服务器,以提供      内容将通过查询字符串参数进行构图。
  2.   

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

  
      
  1. 服务器验证主机名是否符合其条件,以便      该页面允许由目标资源构成框架。这个      例如,可能通过查找受信任的白名单而发生      允许框架页面的域名。例如,      对于Facebook的“赞”按钮,服务器可以检查以查看      提供的主机名与预期的主机名匹配      “赞”按钮。

  2.   
  3. 服务器在“ X-Frame-Options:ALLOW-FROM”中返回主机名      如果在步骤2中符合适当的条件。

  4.   
  5. 浏览器强制执行“ X-Frame-Options:ALLOW-FROM”标头。

  6.   

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


也就是说,在www.example.comexample.com上托管相同的网站实际上没有任何意义。选择其中一个是规范的,然后从另一个向其发出301重定向。

然后,您只需要在X-Frame-Options中允许规范的一个即可。