Web 安全之 HSTS 详解和使用

news2024/12/23 1:56:40

HSTS(HTTP Strict Transport Security) 是一种网络安全机制,可用于防范网络攻击,例如中间人攻击和 CSRF(Cross-Site Request Forgery)等攻击。本文将详细介绍 HSTS 的工作原理、应用场景以及如何在网站中开启 HSTS 。

HSTS 工作原理

HSTS 原理是当浏览器请求网站服务器资源时,服务器会返回包含“Strict-Transport-Security” HTTP 响应头的响应内容,用来告诉浏览器在接下的访问中必须使用 HTTPS 而不是 HTTP 协议与该网站服务器通信。浏览器会在本地缓存这些信息一段时间,一般为六个月。

启用 HSTS 后,发送 HTTP 请求时,浏览器会自动检查有没有设置过 HSTS,如果设置过,则会将 HTTP 升级为 HTTPS 请求(如果服务器的 HTTPS 证书无效了,例如证书过期、使用了自签名证书等,浏览器会终止连接)。

原理图如下:

HSTS 的作用是强制浏览器使用 HTTPS 访问服务器。只有当客户端通过 HTTPS 发出请求时,收到的服务器的响应头中包含了 Strict-Transport-Security 字段才会生效。非 HTTPS  访问的响应头中设置的 HSTS 不会生效。

HSTS 的安全作用

  • 提高网站安全性,通过设置 HSTS 强制浏览器使用 HTTPS 协议,可以有效防止中间人攻击和 Cross-Site Request Forgery 等攻击。
  • 保护数据的传输安全,因为使用 HTTPS 协议可以防止数据在传输过程中被攻击者劫持。

如何配置 HSTS ? 

  • 为 WEB 服务器配置好 HTTPS 协议和证书,最好使用权威的 CA 证书,具体的配置方法就不详细说明了,可以自行搜索自己使用的 WEB 服务器对应的 HTTPS 配置方法(强调一点,尽量使用 TLS1.2 及以上版本)。
  • 在 WEB 服务器上正确设置 HTTP Strict-Transport-Security 响应头,在网站的 HTTP 响应头中设置 HTTP Strict-Transport-Security 头,可以告诉浏览器将该网站重定向到 HTTPS 协议,可以自行搜索自己使用的 WEB 服务器对应的设置 Response Header 的方法。示例及说明如下:
Strict-Transport-Security: max-age=31536000

以上 Header 的意思是,浏览器缓存此 HSTS 信息一年(31536000秒)的时间。还可以设置可选项 includeSubDomains 指令,用来将 HSTS 配置应用到所有子域名。例如:

Strict-Transport-Security: max-age=31536000; includeSubDomains

HSTS 的不足

  • 用户首次访问某网站是不受 HSTS 策略保护的,因为首次访问时,浏览器还未收到 HSTS 配置。
  • 由于 HSTS 会在一定时间后失效(通过 max-age 指定的有效期),所以浏览器是否使用 HSTS 策略取决于当前系统时间。攻击者可以通过一些方式修改操作系统的时间,从而使 HSTS 策略失效。

小结

HSTS 是一种很有用的网络安全机制,可以用于提高网站的安全性和可靠性,有效防范中间人攻击和 Cross-Site Request Forgery 等攻击,建议所有网站都启用 HSTS 功能。同时,也需要定期检查和更新网站的安全设置,以确保安全性和可靠性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/674884.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机视觉 | 目标检测】arxiv 计算机视觉关于分类和分割的学术速递(6月 22 日论文合集)

文章目录 一、分类相关(4篇)1.1 Annotating Ambiguous Images: General Annotation Strategy for Image Classification with Real-World Biomedical Validation on Vertebral Fracture Diagnosis1.2 Benchmark data to study the influence of pre-training on explanation pe…

无需专业知识!学会用TensorFlow 2实现天气识别的秘诀

💡《目标识别100例》使用的是Python语言、TensorFlow框架,包含了几十种CNN算法案例💎 附有 🖥 源码 ,可一键运行,避免调试烦恼🏆 课程大作业、毕业论文可直接考借鉴🎈 同时 附带各种算法原理及对应的代码教程,用户可根据自身情况快速排列组合,在不同的数据集上实…

从零开始:入门双目视觉你需要了解的知识

文章目录 前言 双目相机标定去畸变极线校正(立体校正)立体匹配深度图生成文章已经同步更新在3D视觉工坊啦,原文链接如下: 前言 双目立体视觉是计算机视觉中的一个重要领域,它利用两个相机拍摄同一场景的不同视角的图像…

HDLBits笔记5:Circuits.Combinational Logic.Basic gates

Wire 实现一个电路完成in和out的连线 module top_module (input in, output out);assign out in; endmoduleGND 实现一个电路将out连到GND module top_module (output out);assign out 1b0; endmoduleNOR 实现或非门 module top_module (input in1,input in2,output ou…

Vue-消息订阅与发布(pub/sub)

消息订阅与发布(pub/sub) 消息订阅与发布和全局事件总线一样,也是一种组件间通信的方式 pub/sub全称为publisher(订阅)/subscriber(发布),一般需要数据的人订阅消息,提供数据的人发布消息 这个技术非常简单容易上手,主要有以下两步 1 订阅…

Java集合之ArrayList详解

Java集合之ArrayList 一、ArrayList类的继承关系1. 基类功能说明1.1. Iterator:提供了一种方便、安全、高效的遍历方式。1.2. Collection:为了使ArrayList具有集合的基本特性和操作。1.3. AbstractCollection:提供了一些通用的集合操作。1.4.…

Vue-动画效果

vue动画效果 vue中动画效果是很简单的一个东西,vue帮助我们做了一些动画封装,同时也支持自定义动画,过度,第三方库,这些方式都可以实现,我们一一举例说明 注意:下面的相关截图,由于…

55 KVM工具使用指南-LibcarePlus概述

文章目录 55 KVM工具使用指南-LibcarePlus概述55.1 概述55.2 软硬件要求55.3 注意事项和约束 55 KVM工具使用指南-LibcarePlus概述 55.1 概述 LibcarePlus 是一个用户态进程热补丁框架,可以在不重启进程的情况下对 Linux 系统上运行的目标进程进行热补丁操作。热补…

语音合成 - TTS-VUE 学习

今天给小伙伴测试了一款人工智能文字合成语音的工具,测试中发现应该是某位大神开发的开源工具,经过一下午的测试,发现有可学习之处,有兴趣的小伙伴可以一起来学习下。 一、简单介绍 微软的语音合成助手利用强大的微软AI语音库&am…

牛云企业官网小程序,外卖cps权益变现,uniCloud云开发无需购买服务器和域名,助力每一位创业者。

技术优势 基于 uniapp uniCloud 研发,无需购买服务器和域名,uniCloud 是 DCloud 联合阿里云、腾讯云 serverless 构建。从此不用关心服务器运维、弹性扩容、大并发承载、防DDoS攻击等,轻松应对高并发应用, 上图 小程序页面 体…

一种新颖的智能优化算法-蝠鲼优化算法(MRFO)

目录 一、MRFO数学模型 1.1 链式觅食 1.2 旋风式觅食 1.3 翻筋斗式觅食 二、MRFO伪代码 2019年提出一种新的仿生优化技术称为魔鬼鱼觅食优化算法,旨在提供一种替代优化 解决实际工程问题的方法。该算法的灵感是基于智能算法魔鬼鱼的行为。这项工作模拟了魔鬼…

轻量应用服务器性能如何?CPU带宽流量系统盘测评

轻量应用服务器性能如何?腾讯云轻量应用服务器是一种轻量级搭建小型网站和应用的服务器,相对于其他更高性能配置的服务器CVM,性价比更高。虽然其性能不如高性能云服务器CVM,但对于小型网站和应用来说,能够提供基本的计…

JDK1.8 lambda_函数式编程_stream流

一、 lambda表达式 jdk 1.8 引入了 lambda表达式 能够我们 编写代码时更加简洁,也为函数式编程提供了支持 lambda表达式 作用 简化匿名实现类的书写,实现接口抽象方法; (参数类型 参数名1,参数类型 参数名2,……参数类型 参数名n)->{ //方法体 } …

【工具】搜狗输入法常用配置(持续更新)

▒ 目录 ▒ 🛫 问题描述环境 1️⃣ 按键相关通用快捷键系统快捷键辅助输入快捷键 2️⃣ 其它自定义语句关闭自动更新 🛬 结论 🛫 问题 描述 作为输入法的常青树,重装系统后经常第一步就是装输入法,由于以下原因&#…

开发框架前后端分离的好处是什么

关于将前端和后端保持在一起或分开,存在广泛的意见分歧。唯一重要的是,这两个组件对于开发成熟的应用程序都是必需的。 考虑:紧密耦合的前端和后端 许多人认为后端和前端的分离是一个坏主意,这两个角色之间没有太大区别。 以下…

多旋翼无人机振动分析与减振方法

多旋翼无人机振动分析与减振方法 振动分析无人机减振设计机械减振数字滤波减振 振动分析 振动机制包括: 激励(振动源)系统响应 无人机振动机制: 激励 —— 动力系统(旋翼电机)系统 —— 机架响应 —— …

《产品思维》 要点

“一切以用户价值为依归”的价值观,落地下来就是从用户中来,到用户中去。 认知用户 用户画像 用户是一切产品的源头 用户不是理性人 我们的用户到底是谁、究 竟在哪里。这个“到底是谁”“究竟在哪里”。 用户生活工作的环境,是他们日常的…

【机器学习】机器故障的二元分类模型-Kaggle竞赛

竞赛介绍 数据集描述 本次竞赛的数据集(训练和测试)是从根据机器故障预测训练的深度学习模型生成的。特征分布与原始分布接近,但不完全相同。随意使用原始数据集作为本次竞赛的一部分,既可以探索差异,也可以了解在训…

[RockertMQ] Broker启动加载消息文件以及恢复数据源码 (三)

Broker的启动过程中, 在DefaultMessageStore实例化后, 会调用load方法将磁盘中的commitLog、ConsumeQueue、IndexFile文件的数据加载到内存中, 还有数据恢复的操作。 调用isTempFileExist方法判断上次broker是否是正常退出, 如果是正常退出不会保留abort文件, 异常退出则会。 …

【MySQL】关于自增id、雪花id还是uuid作为MySQL主键

在MySQL中设计表的时候,MySQL官方推荐不要使用uuid或者不连续不重复的雪花id(long型且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment。那么为什么不使用雪花id或者uuid呢?让我们来探讨分析一下这个问题的原因。 关于…