web安全之反向代理配置X-Frame-Options实现防盗链和防止点击劫持攻击

介绍

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

X-Frame-Options  HTTP&#x54CD;&#x5E94;&#x5934;&#x662F;&#x7528;&#x6765;&#x7ED9;&#x6D4F;&#x89C8;&#x5668;&#x6307;&#x793A;&#x5141;&#x8BB8;&#x4E00;&#x4E2A;&#x9875;&#x9762;&#x53EF;&#x5426;&#x5728;<frame>,<iframe>,<embed>或者<object>&#x4E2D;&#x5C55;&#x73B0;&#x7684;&#x6807;&#x8BB0;&#x3002;
&#x7AD9;&#x70B9;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x786E;&#x4FDD;&#x7F51;&#x7AD9;&#x6CA1;&#x6709;&#x88AB;&#x5D4C;&#x5165;&#x5230;&#x522B;&#x4EBA;&#x7684;&#x7AD9;&#x70B9;&#x91CC;&#x9762;&#xFF0C;&#x4ECE;&#x800C;&#x907F;&#x514D; &#x70B9;&#x51FB;&#x52AB;&#x6301;&#xFF08;clickjacking&#xFF09;&#x653B;&#x51FB;&#x3002;
&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;X-Frame-Options&#x662F;&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x63A7;&#x5236;&#x9875;&#x9762;&#x662F;&#x5426;&#x53EF;&#x4EE5;&#x5D4C;&#x5165;&#x5176;&#x4ED6;&#x9875;&#x9762; (&#x5185;&#x5BB9;&#x88AB;&#x5D4C;&#x5230;&#x522B;&#x4EBA;&#x7684;&#x7F51;&#x7AD9;&#x4E2D;&#x53BB;&#xFF0C;&#x5E76;&#x5728;&#x4E0A;&#x9762;&#x52A0;&#x4E00;&#x4E2A;&#x900F;&#x660E;&#x5C42;&#xFF0C;&#x8BF1;&#x5BFC;&#x7528;&#x6237;&#x70B9;&#x51FB;)&#xFF0C;&#x5E76;&#x4E14;&#x8FD8;&#x80FD;&#x907F;&#x514D;&#x70B9;&#x51FB;&#x52AB;&#x6301;&#xFF08;clickjacking&#xFF09;&#xFF1B;

(&#x4EC5;&#x5F53;&#x8BBF;&#x95EE;&#x7684;&#x7528;&#x6237;&#x4F7F;&#x7528;&#x652F;&#x6301; X-Frame-Options &#x7684;&#x6D4F;&#x89C8;&#x5668;&#x65F6;&#xFF0C;&#x6B64;&#x9644;&#x52A0;&#x7684;&#x5B89;&#x5168;&#x6027;&#x624D;&#x4F1A;&#x88AB;&#x63D0;&#x4F9B;)
</object></iframe>

劫持(clickjacking)攻击 介绍

语法

X-Frame-Options 有三种可配置值:

X-Frame-Options: deny
X-Frame-Options: sameorigin
X-Frame-Options: allow-from https://example.com

allow-from&#x8BBE;&#x7F6E;&#x591A;&#x57DF;&#x540D;&#x7684;&#x65B9;&#x5F0F;1 (&#x5141;&#x8BB8;&#x591A;&#x4E2A;&#x57DF;&#x540D;iframe&#x5D4C;&#x5957;&#xFF0C;&#x6CE8;&#x610F;&#x8FD9;&#x91CC;&#x662F;&#x7528;&#x9017;&#x53F7;&#x5206;&#x9694;)
X-Frame-Options: allow-from https://example.com,https://example1.com,https://example2.com

allow-from&#x8BBE;&#x7F6E;&#x591A;&#x57DF;&#x540D;&#x7684;&#x65B9;&#x5F0F;2
X-Frame-Options: allow-from https://example.com
X-Frame-Options: allow-from https://example1.com
X-Frame-Options: allow-from https://example2.com

web安全之反向代理配置X-Frame-Options实现防盗链和防止点击劫持攻击

语法说明

字段 描述 备注 X-Frame-Options: deny 该页面不允许在 frame 中展示,

即便是在相同域名的页面中嵌套访问也不允许。 deny、sameorigin、allow-from

仅仅允许使用一种配置 X-Frame-Options: sameorigin 该页面可以在相同域名页面的 frame 中嵌套访问 deny、sameorigin、allow-from

仅仅允许使用一种配置 X-Frame-Options: allow-from
https://example.com/

该页面可以在指定来源的 frame 中嵌套访问 1.deny、sameorigin、allow-from

仅仅允许使用一种配偶者

示例

配置 Apache

配置 Apache 在所有页面上发送 X-Frame-Options 某个响应头,需要把下面这行添加到 ‘site’ 的配置中

Header always set X-Frame-Options "SAMEORIGIN"

配置好后,可能重启Apache2失败,原因是没有安装headers模块
执行命令:# a2enmod headers 即可安装headers模块
安装后可以在/etc/apache2/mods-enabled/header.load 目录下看到headers.load模块可用

配置 Nginx

配置 Nginx 发送 X-Frame-Options 某个响应头,把下面这行添加到 ‘http’, ‘server’ 或者 ‘location’ 的配置中:

add_header X-Frame-Options SAMEORIGIN always;

web安全之反向代理配置X-Frame-Options实现防盗链和防止点击劫持攻击

允许多个域名iframe嵌套

add_header X-Frame-Options: allow-from https://example.com
add_header X-Frame-Options: allow-from https://example1.com
add_header X-Frame-Options: allow-from https://example2.com

或者

注意这里是用逗号分隔:
add_header X-Frame-Options "ALLOW-FROM http://example.com,https://example1.com,https://example2.com";

配置 IIS

配置 IIS 发送 X-Frame-Options 某个响应头,添加下面的配置到 Web.config 文件中:


  ...

  ...

配置 HAProxy

配置 HAProxy 发送 X-Frame-Options响应头, 添加下面这行到 front-end, listen, or backend 配置中:

rspadd  X-Frame-Options:\ SAMEORIGIN

参考

[互联网健康与隐私保护的非营利组织Mozilla X-Frame-Options#语法]

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/X-Frame-Options#&#x8BED;&#x6CD5;
http://nginx.org/en/docs/http/ngx_http_headers_module.html

Original: https://www.cnblogs.com/linuxshare/p/16494406.html
Author: 爱折腾的大臭臭
Title: web安全之反向代理配置X-Frame-Options实现防盗链和防止点击劫持攻击

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

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

(0)

大家都在看

  • 软件工程 统一过程软件(RUP) 第5篇随笔

    1.RUP简介 本质: 是”一般的过程框架” 为软件开发,进行不同抽象层之间”映射”,安排其开发活动的次序,指定任务和需要开发的志平…

    Linux 2023年6月7日
    0106
  • 来的随笔

    感谢各位 posted @2022-01-07 12:08 三途河畔人 阅读(71 ) 评论() 编辑 Original: https://www.cnblogs.com/sthp…

    Linux 2023年6月7日
    0102
  • Redis入门讲解(介绍、安装、常用命令)

    Redis入门讲解(介绍、安装、常用命令) Redis是非关系型数据库 关系型数据库 关系型数据库是采用了关系模型来组织数据的数据库,以行和列的形式存储数据,由二维表及其之间的关系…

    Linux 2023年6月6日
    096
  • 【MySQL篇】Navicat导入SQL大文件报错终极解决方案

    面对 大数据库文件(一般50M以上),使用Navicat导入的时候容易出现 [ERR]2006等报错问题,此文提供了几种办法,包括修改MySQL的配置参数在网上也有很多详细教程介绍…

    Linux 2023年6月13日
    095
  • 网卡的RX Ring和TX Ring

    1 简介 环形缓冲(ring buffer)是NIC处理数据包的一种通用数据结构,出现的原因是现代NIC基本使用DMA进行数据传输,作为一种高效简单[1]的数据结构,环形缓冲很 适…

    Linux 2023年6月7日
    094
  • 解决Docker容器iptables不能用

    最近使用frp做跳板远程运维内网的服务器,尽管已经屏蔽了海外IP对vps服务器的访问,但是总觉得直接暴露远程管理的端口在互联网上还是不安全。于是想着用Ocserv做服务端先vpn拨…

    Linux 2023年5月27日
    098
  • Linux的安装和配置

    Linux的安装和网络配置 CentOS7安装教程 https://www.php.cn/centos/472898.html 1.虚拟网络编辑器配置 通过VMware菜单栏,依次…

    Linux 2023年6月11日
    080
  • QT父类信号调用子类槽函数

    故事背景:我定义了一个QT父类,里面有自定义信号和槽函数,我在main函数定义父类指针指向子类对象,此时发信号,子类收不到,开始咱们的探险之路。。。 解决方案:根据加断点发现调用的…

    Linux 2023年6月13日
    076
  • 保罗·艾伦的故事

    上周,保罗·艾伦逝世。《财新周刊》约我写一篇纪念文章,发表在他们杂志上面 一些个人新闻:最近,我了解到我在2009年与之抗争的非霍奇金淋巴瘤已经复发。我已经开始治疗,我的医生很乐观…

    Linux 2023年6月14日
    098
  • Redis处理高并发 加锁

    在程序开发过程中,通常会遇到需要独占式的访问一些资源的情形,比如商品秒杀时扣减库存。这时就需要对资源加锁。实现锁的方式有很多,比如数据库锁、文件锁等等。本文简单介绍PHP中使用re…

    Linux 2023年5月28日
    083
  • CentOS7 源码安装Nginx及Nginx基本管理设置

    CentOS7 安装 参考文档 CentOS7最小安装后初始化安装工具 1:yum install net-tools 参考文档 2:源码安装wget 参考文档 或者执行 yum …

    Linux 2023年5月27日
    0110
  • Android BLE 蓝牙开发——扫码枪基于BLESSED

    一、蓝牙模式HID与BLE 当扫码枪与手机连接时,通常采用的是 蓝牙HID(Human Interface Device)模式。本质上是一个把扫码枪作为一个硬件键盘,按照键盘协议把…

    Linux 2023年6月13日
    0100
  • 记一次从源码泄露到getshell(二)

    0x00 前言 文章所述漏洞已经提交至漏洞平台,且所有恶意操作均已复原 0x01 源码泄露 http://www.xxx.com.cn/www.zip 老规矩拿到源码先通关关键词找…

    Linux 2023年5月28日
    098
  • 【设计模式】Java设计模式-模板模式

    Java设计模式 – 模板模式 😄 不断学习才是王道🔥 继续踏上学习之路,学之分享笔记👊 总有一天我也能像各位大佬一样🏆原创作品,更多关注我CSDN: 一个有梦有戏的人…

    Linux 2023年6月6日
    0137
  • QLabel文字内容行间距

    故事背景:最近做项目升级,需要界面上展示升级更新内容,用QLabel展示,字符串是这样的”1、XXXXXXX;2、XXXXXXX;3、XXXXXXX”,一个…

    Linux 2023年6月13日
    086
  • 云笔记本:一个Laxcus应用软件

    给大家展示一个第三方开发的应用软件:云笔记本。 这个作品来自一位Laxcus分布式应用软件开发者,目前已经通过Laxcus集群操作系统的兼容性测试。云笔记本的界面和功能,类似Win…

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