我的回复标题来自何处?

时间:2017-06-07 16:21:22

标签: asp.net asp.net-mvc iis httpresponse

对于在IIS下运行的未知ASP.NET应用程序,我在哪里可以找到给定响应头的设置位置?

拥有完整的清单对我们所有人都非常有用,所以请提供你所知道的。

具体细节

就我而言,我有一个在集成管道模式下在IIS 7.0上运行的ASP.NET MVC应用程序。这是一个开发环境,没有负载平衡器或CDN阻碍。我可以访问源代码,但无法找到罪魁祸首。我正在查找X-Frame-Options标题的来源,其中我有两个,其中DENYSAMEORIGIN的值相互冲突。

我应该在哪里寻找这两个相互冲突的价值观?

类似问题

  • 有一个similar question,特定于Max-Age,在撰写本文时具有开放的赏金。这个问题不同的原因是,Max-Age更有可能由第三方设置,例如CDN或反向代理,这给混合物增加了更多的复杂性。
  • Django/NGinx-specific,未答复
  • Same problem on IIS6,无决议

1 个答案:

答案 0 :(得分:0)

这是我检查过的地方。这对我没有帮助,但它可能对其他人有帮助。

  • 的Web.config。 (以下条目采用XPath表示法)

    • /system.webServer/httpProtocol/customHeaders

      查找<add name="header-name" value="header-value" />

    • 等行
    • /system.webServer/modules(中间件模块)

      暂时删除所有可疑的中间件模块,或单步执行OnResponse代码,查看sender.Response.Headers以查看何时(或是否)添加了不需要的标头。

  • 机器配置(source):我查找了与Web.config相同的选项,以及搜索标题名称和任何相关模块。我检查了32位和64位版本:

    • 32位%windir%\Microsoft.NET\Framework\[version]\config\machine.config
    • 64位%windir%\Microsoft.NET\Framework64\[version]\config\machine.config
  • 代码

    • 控制器注释

      在探索代码时,我发现了一个这样的注释:

      [AddHttpResponseHeaderCustomFilter("X-Frame-Options", "DENY")]
      
    • Global.asax.cs:查找添加标题的任何内容。

    • 解决方案范围内的搜索:我尝试搜索以下任何一种情况:X-Frame-OptionsFrame-Options(不区分大小写),frame(不区分大小写,仅限整个单词
  • IIS管理器
    • 检查以下每个层次结构的 HTTP响应标头
      HTTP Response Headers Icon
    • 机器(顶级)
    • 网站(默认网站)
    • 应用
    • 应用程序下的每个文件夹,向下钻取到控制器的包含文件夹。 (对于大多数MVC应用程序,这将是名为Controllers的顶级文件夹,但也可能是Area\AreaName\Controllers。)