Asp.net web.config 语法问题

Asp.net web.config syntax issue

我正在开发 asp.net 消除安全漏洞的应用程序。我想讨论的漏洞是“X-XSS Protection”和“clickjacking”。 我通过搜索并遵循了这个 link。我只是使用了标题下的解决方案 'Using <customHeaders> in Web.Config'

在此之后,当我 运行 应用程序时,我收到 500 内部服务器错误:HTTP Error 500.19 - Internal Server Error。在 Config Error 标签下的 detailed error information 中,它表示 Unrecognized element 'add'.

在此之后,我删除了结束标记 </add>,只留下 <add name="X-Frame-Options" value="DENY"/>,现在应用程序 运行 正常。

以下几点我需要一些帮助:

  1. 为什么上面给出的语法 link 不起作用?
  2. 任何人都可以解释以下几行的意义:

<add name="X-Frame-Options" value="DENY"/> <add name="X-XSS-Protection" value="1; mode=block"/> <add name="X-Content-Type-Options" value="nosniff "/>

一点点我知道这些是额外的安全措施headers。谢谢

链接文章中的格式有几处错误,我已在此处复制...

<httpprotocol> 
 <customheaders> 
  <remove name="X-Powered-By"> 
  <add name="X-Frame-Options" value="DENY"> 
  <add name="X-XSS-Protection" value="1; mode=block"> 
  <add name="X-Content-Type-Options" value="nosniff "> 
 </add></add></add></remove></customheaders> 
</httpprotocol>
  • <httpprotocol></httpprotocol> 必须是 <httpProtocol></httpProtocol>
  • <customheaders></customheaders> 必须是 <customHeaders></customHeaders>
  • <add><remove> 必须是 <customHeaders> 的直接子代...它们不能嵌套。
  • 虽然我不能说 100%,但我相信 "nosiff " 中的 space 可能是一个问题(虽然它可能会被正确处理,但我建议将其删除以防万一浏览器忽略它)

使用 <add></add><add/> 元素没有区别,只要它们都是 <customHeaders> 元素的直接子元素

<httpProtocol> 
 <customHeaders> 
  <remove name="X-Powered-By" />
  <add name="X-Frame-Options" value="DENY" />
  <add name="X-XSS-Protection" value="1; mode=block" />
  <add name="X-Content-Type-Options" value="nosniff" />
 </customHeaders> 
</httpProtocol>

有关实际选项,请参阅...