SSL/TLS深度解析--在 Nginx上配置 HSTS、CSP 与其他
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,在 Nginx 上配置 HSTSHTTP响应中包含 Strict-Transport-Security 头实现网站HSTS,像下面这样配置:Strict-Transport-Security: max
千家信息网最后更新 2024年09月22日SSL/TLS深度解析--在 Nginx上配置 HSTS、CSP 与其他
在 Nginx 上配置 HSTS
HTTP响应中包含 Strict-Transport-Security 头实现网站HSTS,像下面这样配置:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload,就实现了HSTS,即-- HTTP Strict Transport Security,HTTP严格传输安全。假设TLS连接没有错误,兼容的浏览器将会在 max-age 参数指定的保留期内激活HSTS。
一旦站点启用了HSTS,用户的后续访问就会直接进入443端口,然而你还需要确保那些访问到80端口的用户能被重定向到正确的地址。为了支持这个重定向,而且由于在明文响应中HSTS响应头是不被允许的。
需要配置重定向
# 增加HSTS[root@www conf]# vim nginx.conf ......server { listen 80; server_name *.test05.com test05.com; return 301 https://$host$request_uri;}......add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always ;# max-age:时间单位是秒,31536000/3600*24 =365天# always:表示无论哪种请求都将HSTS的头发送给客户端,也包括错误响应。默认情况404等是不发送HSTS头的。# includeSubDomains:参数指定在当前主机域名及其所有子域上启用HSTS。# preload:是一个可选项,是一个为了解决第一次访问的用户,无法预先得知HSTS设置,而创建的# 要注意 add_header 这个指令的继承方式,如果一个子配置块中设置了 add_header 指令,那么在上层配置块中的 add_header 指令是不会被继承的。如果你需要在子配置中添加额外的 add_header 指令,那么有关HSTS那部分要复制到子配置中。[root@www conf]# ../sbin/nginx -tnginx: the configuration file /project/nginx1.15.0/conf/nginx.conf syntax is oknginx: configuration file /project/nginx1.15.0/conf/nginx.conf test is successful[root@www conf]# ../sbin/nginx -s reload
在 Nginx 上使用 CSP
内容安全策略(content security policy,CSP)是一种声明的安全机制,可以让网站运营者能够控制遵循CSP的用户代理(通常是浏览器)的行为。通过控制要启用哪些功能,以及从哪里下载内容,可以减少网站的***面。
CSP的主要目的是防御跨站点脚本(cross-ste scripting,XSS)***。例如,CSP可以完全禁止内联的JavaScript,并且控制外部代码从哪里加载。它也可以禁止动态代码执行。禁用了所有的这些***源,XSS***变得更加困难。一个网站通过设置 Content-Security-Policy 响应头启用所需的CSP策略。
具体规则:
default-src:默认策略
script-src:js脚本
style-src:样式
img-src:图片
connect-src:链接
font-src:字体
object-src:插件
media-src: 多媒体
frame-src:frame
sandbox:沙箱
可取值与含义:
'*':任意来源
'none':任何来源的都不加载
'self':同源,与请求同源的资源可以加载
data 编码过的资源,例如Base64编码过的图片
'unsafe-inline':行内代码可以执行
'unsafe-eval':允许动态代码执行,例如 JavaScript的 eval()方法
https:要求来源是https协议的
https:// xxx.com:要求来源是https协议的某个站点
css.test.com:要求来源是某个站点
*.test.com:要求来源是某个站点及其所有的子站点
[root@www ~]# cd /project/nginx1.15.0/conf/[root@www conf]# vim nginx.conf......add_header Content-Security-Policy "default-src 'self'; img-src * ; object-src * script-src www.test05.com" ;[root@www conf]# ../sbin/nginx -tnginx: the configuration file /project/nginx1.15.0/conf/nginx.conf syntax is oknginx: configuration file /project/nginx1.15.0/conf/nginx.conf test is successful[root@www conf]# ../sbin/nginx -s reload
nginx 在配置上错误所造成的漏洞
[root@www ~]# cd /project/nginx1.15.0/conf/[root@www conf]# vim nginx.conf......# 防止嵌入 到frame 中;避免点击劫持***add_header X-Frame-Options DENY ;#禁止服务器自动解析资源类型add_header X-Content-Type-Options nosniff ;#防XSS***add_header X-Xss-Protection 1;
X-Frame-Options 3个选项值:
DENY:拒绝一个页以frame方式加载
SAMEORIGIN:同源域名下的页面,可以用frame方式加载
ALLOW-FROM:允许指定的域名以frame形式加载
点击劫持,是在某个自身不安全站点的某个页面上有一个iframe加载了你的网站的某个页面,***者可以篡改这个iframe,诱使用户去点击,所以最好还是禁止iframe去加载你的页面;或者是同源和个别指定站点可以以frame形式加载你的页面。
XSS***:跨站脚本***:
X-Xss-Protection:4个选项值:
0:不开启XSS保护
1:开启保护(浏览器中一般默认),检测到跨站点脚本***,浏览器将删除不安全的部分。
1; mode=block 检测到***,浏览器将阻止页面的呈现
1; report=
检测到跨站点脚本***,浏览器将清理页面并报告违规行为。这使用CSP report-uri功能发送报告;只有chrome支持发送报告。 nosniff 是禁止嗅探 ,服务器提示客户端一定按照 Content-Type 首部中的 MIME 类型来解析,而不能对其进行修改。
禁用了客户端的 MIME 类型嗅探行为,防止恶意代码的注入。开启X-Content-Type-Options 要注意,要保证所传输的内容都要有正确 Content-Type 属性,要是没有这个属性,可能会造成加载不成功和无法运行;因为关闭了浏览器自动识别这一项。有些浏览器 如 IE9 ,IE11 在无法获得类型时,就不加载内容。
nginx配置中的 目录穿透隐患:要确保配置的路径和alias 配置的路径 ,
要都有 / ;或者都没有 /
正确配置
location /download/ { autoindex on; alias /project/nginx1.15.0/files/; }
有安全隐患的配置
location /download { autoindex on; alias /project/nginx1.15.0/files/; }
配置
站点
浏览器
浏览
页面
安全
来源
代码
用户
网站
脚本
内容
指令
类型
同源
域名
客户
报告
方式
策略
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库完整性四大类型
网络安全零基础
把数据库连接到内存卡
我的世界1.14服务器离线
每个人都应该学点网络安全的原因
数据库设计时有哪些实体
教育园服务器
富士通和IBM服务器
电脑方舟服务器1个月多少钱
人资软件开发申请
软件开发人员劳务费
佛山金融软件开发
壹飞网络技术有限公司
信息资源数据库的特点
亚马逊香港服务器ssl加密
校园wifi网络安全吗
计算机网络技术中专教材
数据库写入的同时读取
北京拼接服务器厂家虚拟主机
java建立两个tcp服务器
软件开发管理办法国家规范标准
对日外包软件开发前景好吗
希望英语单词软件开发
昆山市银来互联网科技有限公司
qt登录遍历数据库怎么写
代写数据库
视频报警系统服务器
access数据库打印
密码编码学与网络安全期末复习
2017国际网络安全大赛