add_header被覆盖 -配置错误
Posted null1433
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了add_header被覆盖 -配置错误相关的知识,希望对你有一定的参考价值。
nginx的配置文件分为Server、Location、If等一些配置块,并且存在包含关系,和编程语言比较类似。如果在外层配置的一些选项,是可以被继承到内层的。
但这里的继承也有一些特性,比如add_header,子块中配置后将会覆盖父块中的add_header添加的所有HTTP头,造成一些安全隐患。
如下列代码,整站(父块中)添加了CSP头:
server { ... add_header Content-Security-Policy "default-src ‘self‘"; add_header X-Frame-Options DENY; location = /test1 { rewrite ^(.*)$ /xss.html break; } location = /test2 { add_header X-Content-Type-Options nosniff; rewrite ^(.*)$ /xss.html break; } }
/test2的location中又添加了X-Content-Type-Options头,导致父块中的add_header全部失效:
构建xss
ip/test1#<img src=1 onerror=alert(1)>
以上是关于add_header被覆盖 -配置错误的主要内容,如果未能解决你的问题,请参考以下文章
Nginx指令add_header和proxy_set_header的区别
爬虫第一天——add_header()和get_header()