漏洞修复
1. TLS 1.0/1.1 已启用
漏洞信息:
TLS 1.0 不被认为是“强密码术”。
# nginx server块修改配置,将1.0,1.1改成1.2
ssl_protocols TLSv1.2;
2. Cookie 具有缺失、不一致或矛盾属性
漏洞信息:
可能会导致cookie失效、被攻击、cookie与环境不兼容等
# nginx location块添加配置:
proxy_cookie_path / "/; httponly; secure; SameSite=Lax";
注:
- httponly:当 cookie 设置有 HttpOnly 标志时,它会命令浏览器该 cookie 只能由服务器访问,而不能由客户端脚本访问。
- secure:浏览器只会通过https发送cookie,保证加密性
- SameSite:限制第三方 Cookie
3.1 Strict:完全禁止。
3.2 Lax:禁止大部分,基本可以防止CSRF攻击
3.3 None:关闭SameSite功能
3. 点击劫持:X-Frame-Options 报头缺失
漏洞信息:
诱使 Web 用户点击与用户认为其单击的内容不同的内容,从而在单击看似无害的网页时有可能导致机密信息泄露或计算机被控制
# nginx server块添加配置:
add_header X-Frame-Options SAMEORIGIN;
注:
- DENY:表示该页面不允许在frame中展示,即便是在相同域名的页面中嵌套也不允许。
- SAMEORIGIN:表示该页面可以在相同域名页面的frame中展示。
- ALLOW-FROM uri:表示该页面可以在指定来源的frame中展示。
4. 未实施 HTTP 严格传输安全 (HSTS)
漏洞信息:
Web 应用程序未实施 HTTP 严格传输安全 (HSTS),因为响应中缺少严格传输安全报头。
# nginx server块添加配置:
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
注:配置后,统一网站浏览器只要使用过https,下次http的请求就会强转成https,max-age为生效时长,且每次访问都会重新刷新。
5. 目标服务器启用了不安全HTTP方法
漏洞信息:
开发人员、运维人员一般可能用于调试服务器,开启了一些客户端能够直接读写服务器端文件的方法,例如:DELETE, PUT, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, LOCK, UNLOCK 等HTTP协议支持的方法。
可能直接通过浏览器直接在Web服务器上上传、修改或删除Web页面、脚本和文件。
# nginx server块添加:(只允许get,head,post请求)
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}