Nginx高级 - http{}防守脚本 - httpSafe.conf
在每一个 http{}加上一个脚本
http{
include conf.d/httpSafe.conf # 在conf.d文件夹加上 httpSafe.conf
}
httpSafe.conf
server_tokens off;
# 经常会有针对某个版本的nginx安全漏洞出现
# 隐藏nginx版本号就成了主要的安全优化手段之一
# 当然最重要的是及时升级修复漏洞
############################
###关于请求头防御add_header##
############################
add_header X-Frame-Options SAMEORIGIN;
# X-Frame-Options
# 响应头表示是否允许浏览器加载frame等属性
# 有三个配置DENY禁止任何网页被嵌入
# SAMEORIGIN只允许本网站的嵌套
# ALLOW-FROM允许指定地址的嵌套
add_header X-XSS-Protection "1; mode=block";
# X-XSS-Protection
# 表示启用XSS过滤
# (禁用过滤为X-XSS-Protection: 0)
# mode=block表示若检查到XSS攻击则停止渲染页面
add_header X-Content-Type-Options nosniff;
# X-Content-Type-Options
# 响应头用来指定浏览器对未指定或错误指定Content-Type资源真正类型的猜测行为
# nosniff 表示不允许任何猜测
# 在通常的请求响应中,浏览器会根据Content-Type来分辨响应的类型
# 但当响应类型未指定或错误指定时,浏览会尝试启用MIME-sniffing来猜测资源的响应类型,这是非常危险的
# 例如一个.jpg的图片文件被恶意嵌入了可执行的js代码,在开启资源类型猜测的情况下
# 浏览器将执行嵌入的js代码,可能会有意想不到的后果
add_header Content-Security-Policy "default-src 'self'";
# Content-Security-Policy: 定义页面可以加载哪些资源
# 上边的配置会限制所有的外部资源,都只能从当前域名加载
# default-src定义针对所有类型资源的默认加载策略
# self允许来自相同来源的内容
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
# Strict-Transport-Security: 会告诉浏览器用HTTPS协议代替HTTP来访问目标站点
# 上边的配置表示当用户第一次访问后,会返回一个包含了Strict-Transport-Security响应头的字段
# 这个字段会告诉浏览器,在接下来的31536000秒内,当前网站的所有请求都使用https协议访问
# 参数includeSubDomains是可选的,表示所有子域名也将采用同样的规则