nginx-http响应头安全策略

从nginx的http头文件的方面,利用参数设置开启浏览器的安全策略,来实现相关的安全机制。

add_header Content-Security-Policy "default-src 'self' xxx.xxx.com(允许的地址)
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header 'Referrer-Policy' 'origin';
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;

策略 参数 预防攻击 Content-Security-Policy script-src:外部脚本

style-src:样式表

img-src:图像

media-src:媒体文件(音频和视频)

font-src:字体文件

object-src:插件(比如 Flash)

child-src:框架

frame-ancestors:嵌入的外部资源 (比如、

connect-src:HTTP 连接(通过 XHR、WebSockets、EventSource等)

worker-src:worker脚本

manifest-src:manifest 文件 内容网页安全策略 缓解XSS攻击 X-Content-Type-Options nosniff

浏览器严格匹配资源类型,会拒绝加载错误或者不匹配的资源类 约定资源的响应头,屏蔽内容嗅探攻击 X-XSS-Protection 0 关闭防护

1 开启防护

1; mode=block 开启防护 如果被攻击,阻止脚本执行 XSS攻击 X-Frame-Options deny 标识该页面不允许在frame中展示,即便在相同域名的页面中嵌套也不行

sameorigin 可以在同域名的页面中frame中展示

allow-form url 指定的fream中展示。 点击劫持攻击 Strict-Transport-Security max-age=63072000; includeSubdomains; preload 强制https Referrer-Policy no-referrer-when-downgrade:在同等安全等级下(例如https页面请求https地址),发送referer,但当请求方低于发送方(例如https页面请求http地址),不发送referer

origin:仅仅发送origin,即protocal+host

origin-when-cross-origin:跨域时发送origin

same-origin:当双方origin相同时发送

strict-origin:当双方origin相同且安全等级相同时发送

unfafe-url:任何情况下都显示完整的referer 过滤 Referrer 报头内容 X-Download-Options noopen

用于指定IE 8以上版本的用户不打开文件而直接保存文件。

在下载对话框中不显示”打开”选项 控制浏览器下载文件是否支持直接打开 X-Permitted-Cross-Domain-Policies master-only 只允许使用主策略文件 针对flash的安全策略

Content-Security-Policy 内容网页安全策略,缓解XSS攻击

网络请求中,每个资源都有自己的类型,比如Content-Type:text/html 、image/png、 text/css。
但是有一些资源的类型是未定义或者定义错了,导致浏览器会猜测资源类型,尝试解析内容,从而给了脚本攻击可乘之机。
比如利用一个图片资源去执行一个恶意脚本。

配置:浏览器严格匹配资源类型,会拒绝加载错误或者不匹配的资源类型

X-Content-Type-Options: nosniff

X-Content-Type-Options 约定资源的响应头,屏蔽内容嗅探攻击

X-XSS-Protection 防止XSS攻击

开启浏览器XSS防护,过滤xss攻击脚本)

配置:浏览器XSS防护

X-XSS-Protection: 0 关闭防护
X-XSS-Protection: 1 开启防护
X-XSS-Protection: 1; mode=block 开启防护 如果被攻击,阻止脚本执行

nginx配置: add_header X-XSS-Protection "1; mode=block";

X-Frame-Options 防止点击劫持攻击

通过这个控制来避免自己的资源页面被其他页面引用。

点击劫持:攻击者会用一个自己网站,用ifream或者fream嵌套的方式引入目标网站,诱使用户点击。从而劫持用户点击事件。
deny 标识该页面不允许在frame中展示,即便在相同域名的页面中嵌套也不行。

sameorigin 可以在同域名的页面中frame中展示

allow-form url 指定的fream中展示。

nginx配置:add_header X-Frame-Options SAMEORIGIN;

Strict-Transport-Security 强制https

浏览器只能通过https访问当前资源

配置 强制https

nginx配置:add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

在接下来的一年(即xxx秒)中,浏览器只要向xxx或其子域名发送HTTP请求时,必须采用HTTPS来发起连接。

Referrer-Policy 过滤Referrer报头内容

规定什么情况下显示referer字段,以及referer字段显示的内容多少.

当用户在浏览器上点击一个链接时,会产生一个 HTTP 请求,用于获取新的页面内容,而在该请求的报头中,会包含一个 Referrer,用以指定该请求是从哪个页面跳转页来的,常被用于分析用户来源等信息。
但是也成为了一个不安全的因素,所以就有了 Referrer-Policy,用于过滤 Referrer 报头内容

配置:过滤Referrer报头内容

no-referrer-when-downgrade:在同等安全等级下(例如https页面请求https地址),发送referer,但当请求方低于发送方(例如https页面请求http地址),不发送referer
origin:                    仅仅发送origin,即protocal+host
origin-when-cross-origin:  跨域时发送origin
same-origin:               当双方origin相同时发送
strict-origin:             当双方origin相同且安全等级相同时发送
unfafe-url:                任何情况下都显示完整的referer

nginx配置:add_header 'Referrer-Policy' 'origin';

注意:此配置可能会导致某些系统访问率统计插件失效

X-Download-Options 控制浏览器下载文件是否支持直接打开

控制浏览器下载文件是否支持直接打开,如果支持直接打开,可能会有安全隐患

配置参数:

X-Download-Options: noopen  用于指定IE 8以上版本的用户不打开文件而直接保存文件。在下载对话框中不显示“打开”选项。

nginx配置:add_header X-Download-Options noopen;

X-Permitted-Cross-Domain-Policies 针对flash的安全策略

针对flash的安全策略,用于指定当不能将"crossdomain.xml"文件(当需要从别的域名中的某个文件中读取 Flash 内容时用于进行必要设置的策略文件)放置在网站根目录等场合时采取的替代策略。
X-Permitted-Cross-Domain-Policies: master-only

master-only 只允许使用主策略文件(/crossdomain.xml)

nginx配置: add_header X-Permitted-Cross-Domain-Policies none;

Original: https://www.cnblogs.com/linuxshare/p/16495186.html
Author: 爱折腾的大臭臭
Title: nginx-http响应头安全策略

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573866/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • OSI模型 TCP/IP协议

    系统中每打开一个程序,系统会自动分配一个端口号(0~65535) 端口号:来区分应用程序 网络层:传给哪台主机 加入ip地址(源发出去的地址 目:目的地址)选路 数据链路层:mac…

    Linux 2023年6月6日
    0124
  • 数据转换-16进制字符

    任务详情 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务 在utils.h和utils.c中完成16进制字符’0′-&#…

    Linux 2023年6月8日
    0116
  • 兼容各种浏览器的自动左右滚动兼左右点击滚动代码

    直接切入正题 红色表示要统一(所有的id) 本框架为phpcms,大家可根据自己的框架更改循环。 {pc:content action=”lists” ca…

    Linux 2023年6月13日
    0122
  • LAXCUS授权开源协议

    LAXCUS 授权许可证 第1版 本许可证仅针对LAXCUS分布式操作系统和衍生子版本,围绕LAXCUS分布式操作系统设计开发的硬件、硬件驱动程序、应用软件不受本许可证约束。 您对…

    Linux 2023年6月6日
    0155
  • Java Web登录界面

    非常激动的开通了我的第一个博客,在这里希望大家能多多指点,相互学习。 一个简单的登录界面 首先我们先把这个登录分为三块: 一、数据库 数据库我用的是MYSQL; 二、前端 三、后台…

    Linux 2023年6月13日
    0137
  • 20 年老程序员告诉你的 20 条编码原则

    我从 1999 年就开始了编程生涯,到今年已经有 20 多年了。我先是从 Basic 开始,很快转到了 Pascal 和 C 语言,然后又学习了面向对象编程语言 Delphi 和 …

    Linux 2023年6月8日
    0121
  • MSSQL·CONCAT函数的基础使用

    | 0.47分钟 | 752.8字符 | 1、应用场景 2、基础使用 3、声明与参考资料 | SCscHero | 2022/5/13 PM10:18 | 系列 | 已完成 每一个…

    Linux 2023年6月14日
    0110
  • Spring事务管理,声明式事务和编程式事务实现

    数据库操作过程中,对于增删改等操作,因为涉及到数据库状态的变更,为保证数据安全,需要进行事务管理;Spring事务管理有两种方式,即声明式事务管理和编程式事务管理; 连接池配置: …

    Linux 2023年6月16日
    0240
  • 《分布式系统原理介绍》读书笔记

    1、在大型集群中每日宕机发生的概率为千分之一左右;在实践中,一台宕机的机器恢复时间通常认为是 24 小时。 2、由于网络数据丢失的异常存在,直接决定了分布式系统的协议必须能处理网络…

    Linux 2023年6月16日
    0131
  • MySQL主从复制的原理和实现

    垂直扩展: 横向扩展: 复制:使每一个节点都有相同的数据集 MySQL复制的实现:使用二进制日志来实现 提高性能(负载均衡)、 实现读写分离 实现数据备份的功能(实时备份) 高可用…

    Linux 2023年6月7日
    0129
  • centos安装torch==1.4.0与相关细节

    对于某些直接安装torch==1.4.0报错的情况(没错,就是我遇到了) 在网上查找了,大概的解决方法是先安装一个低版本的torch和torchvision, torchvisio…

    Linux 2023年6月7日
    0133
  • 【Linux】在Linux下文件io使用(二)

    在linux下,一切皆文件。当文件被打开时,会返回文件描述符用于操作该文件,从shell中运行一个进程,默认会有3个文件描述符存在(0、1、2); 0表示标准输入,1表示标准输出,…

    Linux 2023年6月13日
    0147
  • 【转】谈谈 JVM 内部锁升级过程

    一、加锁发生了什么 //System.out.println都加了锁 public void…

    Linux 2023年6月16日
    0150
  • Ubuntu下交换Alt和Ctrl (适用于任何按键修改)

    在 Ubuntu 下交换 Alt和 Ctrl键: sudo vim /usr/share/X11/xkb/keycodes/evdev 或使用系统默认编辑器打开: [En] Or …

    Linux 2023年5月27日
    0129
  • docker安装mysql

    -p 3306:3306 –name mysql -v /root/apply/docker/apply/mysql5.7/log:/var/log/mysql(日志文…

    Linux 2023年6月7日
    0150
  • lvs负载均衡

    Lvs 一.Lvs简介 二. 体系结构 三. Lvs管理工具 1. ipvs 2. ipvsadm 四.lvs工作模式及原理 1.NAT模式 2. DR模式 3.TUN模式(隧道模…

    Linux 2023年6月7日
    0166
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球