Nginx安全加固系列:404页面失去保护
为了预防危害漏洞, Nginx在配置文件里添加了一系列的标头,是通过add_head这个命令,常见的有
http {
## 内容安全策略CSP
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; "
## 禁止该文件被frame
add_header X-Frame-Options DENY ;
}
但是Nginx的add_head添加的标头只在状态码为2xx,3xx才有效,在4xx,5xx这类状态码会失效。
例如,Nginx添加了内容安全策略CSP
add_header Content-Security-Policy "default-src ‘self’; script-src ‘self’; "
状态码为200,可以看到响应标头配置了Content-Security-Policy ,
如果状态码为400,
可以看到响应标头没有了Content-Security-Policy。我不知道这是不是Nginx的Bug,所以Nginx文档说如果4xx,5xx这些状态码的响应头也能加上add_header配置的信息,必须加上always这个参数,
http {
## 内容安全策略CSP
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; " always
## 禁止该文件被frame
add_header X-Frame-Options DENY always;
}
这样子在状态码为4xx,5xx的页面才会配置上add_header设置的信息