以 nginx 中部门配置片段为例:
add_header X-XSS-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header X-Frame-Options SAMEORIGIN always; add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval' blob: *.map.www.dlbtjz.com *.bdimg.com bdimg.share.www.dlbtjz.com res.wx.qq.com pucha.kaipuyun.cn dcs.conac.cn webservice.coolwei.com www.gov.cn zfwzgl.www.gov.cn; object-src 'self'" always; add_header Referrer-Policy "origin-when-cross-origin" always; add_header X-Permitted-Cross-Domain-Policies "master-only" always; add_header X-Download-Options "noopen" always; add_header Strict-Transport-Security "max-age=31536000" always;
1. X?XSS?Protection
参数:1; mode=block作用:开启浏览器自带的 XSS 跨站剧本防护,,,,,,,当浏览器检测到页面存在 XSS 攻击代码时,,,,,,,直接阻止页面渲染,,,,,,,而不是单一过滤剧本。。。。。。
业务影响:仅浏览器侧防护,,,,,,,不会扭转业务逻辑,,,,,,,对网站职能无影响。。。。。。
2. X?Content?Type?Options
参数:nosniff作用:关关浏览器 MIME 类型嗅探行为,,,,,,,不容浏览器自动猜测文件真事粪型,,,,,,,预防恶意上传文件假装成剧本执杏祝。。。。。
业务影响:通用安全配置,,,,,,,业务无感知,,,,,,,不影响正常接见。。。。。。
3. X?Frame?Options
参数:SAMEORIGIN作用:防御点击劫持攻击,,,,,,,只允许本站域名通过 iframe 嵌套当前页面,,,,,,,回绝其他表部网站把你的页面嵌入 iframe。。。。。。
业务影响:若是业务不必要被第三方网站 iframe 嵌入,,,,,,,则齐全无影响;;;;;若必要第三方嵌入页面,,,,,,,该头部必要批改。。。。。。
4. Content?Security?Policy
参数:script-src 'self' 'unsafe-inline' 'unsafe-eval' blob: *.map.www.dlbtjz.com *.bdimg.com bdimg.share.www.dlbtjz.com res.wx.qq.com pucha.kaipuyun.cn dcs.conac.cn webservice.coolwei.com www.gov.cn zfwzgl.www.gov.cn; object-src 'self'作用:内容安全战术,,,,,,,属于资源白名单节造。。。。。。script?src 限造允许加载 js 剧本的起源,,,,,,,蕴含本站、内联剧本、eval 执杏注blob 资源以及业务用到的各类第三方域名;;;;;object?src'self' 仅允许本站加载 flash 这类插件对象资源。。。。。。
业务影响:配置中保留了unsafe-inline、unsafe?eval,,,,,,,兼容老旧业务系统。。。。。。后续若是新增第三方剧本域名,,,,,,,必要补充到此战术内,,,,,,,不然浏览器会拦截对应剧本。。。。。。
5. Referrer?Policy
参数:origin?when?cross?origin作用:节造浏览器 referrer 起源信息的发送规定。。。。。???????缬蛱氖背街淮萃居蛎,,,,,,,同域跳转传递齐全接见 URL。。。。。。
业务影响:仅节造向表跳转时泄露的起源信息,,,,,,,不会滋扰网站业务逻辑。。。。。。
6. X?Permitted?Cross?Domain?Policies
参数:master?only作用:用于限度 Flash、PDF 的跨域读取行为,,,,,,,只认可网站根目录的 crossdomain.xml 跨域配置文件,,,,,,,回绝其他目录下的跨域战术文件。。。。。。
业务影响:此刻业务根基不再使用 Flash,,,,,,,属于兜底安全配置,,,,,,,绝大无数场景无影响。。。。。。
7. X?Download?Options
参数:noopen作用:仅针对 IE8 及以上浏览器,,,,,,,用户下载文件后不容浏览器直接打开下载文件,,,,,,,必要用户手动打开,,,,,,,躲避恶意上传文件的攻击风险。。。。。。
业务影响:现代浏览器直接忽略该头部,,,,,,,仅旧 IE 生效,,,,,,,无业务影响。。。。。。
8. Strict?Transport?Security
参数:max?age=31536000作用:简称 HSTS,,,,,,,通知浏览器在 31536000 秒(1 年)功夫内,,,,,,,接见该站点强造使用 HTTPS 和谈,,,,,,,回绝 HTTP 接见,,,,,,,招架 HTTP 和谈降级劫持、cookie 劫持。。。。。。
业务影响:网站必须不变支持 HTTPS。。。。。。一旦浏览器缓存该规定,,,,,,,就算 HTTPS 服务故障,,,,,,,浏览器也不会回退到 HTTP 接见。。。。。。测试阶段建议使用更幼 max?age 做验证。。。。。。
always 参数注明
nginx 的 add_header 默认只有 2xx 成功状态码才输出响应头;;;;;追加always后,,,,,,,301、404、500 等全数状态码,,,,,,,城市输出这套安全响应头,,,,,,,满足缝隙扫描工具检测要求。。。。。。
沉要把稳:nginx add_header 存在覆盖个性,,,,,,,若是子 location 块内部写了 add_header 指令,,,,,,,会直接覆盖 server 块全数安全头,,,,,,,子 location 必要齐全沉写全数安全头,,,,,,,不然扫描仍旧报头缺失。。。。。。