对于在IIS下运行的未知ASP.NET应用程序,我在哪里可以找到给定响应头的设置位置?
拥有完整的清单对我们所有人都非常有用,所以请提供你所知道的。
就我而言,我有一个在集成管道模式下在IIS 7.0上运行的ASP.NET MVC应用程序。这是一个开发环境,没有负载平衡器或CDN阻碍。我可以访问源代码,但无法找到罪魁祸首。我正在查找X-Frame-Options
标题的来源,其中我有两个,其中DENY
和SAMEORIGIN
的值相互冲突。
我应该在哪里寻找这两个相互冲突的价值观?
Max-Age
,在撰写本文时具有开放的赏金。这个问题不同的原因是,Max-Age更有可能由第三方设置,例如CDN或反向代理,这给混合物增加了更多的复杂性。答案 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位版本:
%windir%\Microsoft.NET\Framework\[version]\config\machine.config
%windir%\Microsoft.NET\Framework64\[version]\config\machine.config
代码
控制器注释
在探索代码时,我发现了一个这样的注释:
[AddHttpResponseHeaderCustomFilter("X-Frame-Options", "DENY")]
Global.asax.cs
:查找添加标题的任何内容。
X-Frame-Options
,Frame-Options
(不区分大小写),frame
(不区分大小写,仅限整个单词