给网站戴上「安全套」

news/2024/4/28 7:46:02/文章来源:https://blog.csdn.net/weixin_34395205/article/details/89420793

本文首发于欧雷流《给网站戴上「安全套」》。由于我会时不时对文章进行补充、修正和润色,为了保证所看到的是最新版本,请阅读原文。

上周六我去一家售后服务点参加了「冬日保养计划」,虽然现在是春天……这是牛电科技为小牛电动车车主所提供的一个售后服务,在去年 11 月 25 日之前购入的可以对车子进行一次免费保养,同时还赠送了一份人车保险——「牛油保」。不得不说,虽然各方面有些不足,但小牛做得还是不错的!

niucare-d8f941e798c62aa311db206f5f52da41a3bf6ee2a72008de25e6cd7e8f59c5c2.jpg

不像其他电动车厂商,小牛对用户的安全问题比较重视,所以推出了这个计划和保险。昨天下班时,手机收到了一条由牛电科技发来的短信。

niucover-e413abe7130eb4cdd58755f47ef25596fa7ff1ff3ed6cc93dd47990ebc045ac2.jpg

就连外界都对我们的安全那么关心,我们有什么理由不去注重自己的安全呢?不仅仅是自身,还应该包括与自己相关的事物的安全,比如网站。

网站安全包含很多方面,本文所要说的是没什么技术含量的,只需要做一些简单配置的——你想的没错,就是 HTTPS。

事前说明

就在昨天,我做了一个决定——全站开启 HTTPS。

缘由

虽然是自己的网站,但我也会时不时地访问一下,体验并琢磨用户在浏览网站和阅读文章时的感受。无论是电脑还是手机,总会出现碍眼的东西!

hijacked-38d14c5f2ef87003433756c9a8a229d8f24403a93d32f1c623f5d93aa1d10266.jpg

看到图中右下角那个「中国移动」的图标没有?按住可以拖动到屏幕中的任何位置,就像 iOS 提供的那个辅助用的 AssistiveTouch 一样;点击后会出现一个显示剩余流量和流量套餐的弹层。

network-traffic-e487e6705e1dc61139e1c6c385a44a7cc3142d0788c80f8ecb84c77dda195aaf.jpg

是不是觉得中国移动特别贴心,在你没用 WiFi 浏览网页时能够时刻监控并提醒你剩余流量?如果换做是中国电信,弹出的就是浮窗广告了,这回你还觉得贴心么?

Too young, too simple! Sometimes naive!

不管你觉得贴不贴心,实际上它们都做了一件极其恶心的事情——HTTP 劫持!无论是作为网站用户还是作为网站管理员,如果你所在浏览的网站已经被网络运营商劫持了,那么你的数据信息的安全正在遭受威胁!

声明

为了你本人及你的网站着想,我有必要事先声明一下——

本文中所描述的是配置全站 HTTPS,示例代码中用的是本站的域名和目录路径,并且除了域名都是虚构的,在操作时请替换成自己的。

我认为开启全站 HTTPS 是条「不归路」,也就是说,要再改回 HTTP 会有很麻烦的后果。所以,在进行配置之前请再三考虑对你来说是否真的有必要这么做

如果你选择继续往下看,代表已经知道后果并做好相应的心理准备了。

传输加密

现如今,在访问一个网站时其网址大多为 http:// 开头。懂点网络知识的都知道 HTTP 是不加密的明文传输,没做任何安全保障措施,黑客可以不费吹灰之力就能拿到数据,运营商能够随意利用你所访问的网站做些恶心的小动作。为了避免那些「杯具」,网站需要戴上名为「SSL」的「安全套」。

根据不同的操作系统和服务器环境「戴法」也不尽相同,这里只说 CentOS + Nginx 的情况。

申请 SSL 证书

给网站加 SSL 需要证书,在以前都是收费的,而且较贵,这对于个人站长来说无疑是一笔不小的开销,增加了运营成本。然而现在有很多免费证书,为「全民 HTTPS 时代」提供了极大的方便!我所使用的是「沃通」所提供的免费 SSL 证书。

访问沃通数字证书商店的申请免费 SSL 证书页面,填入各项信息后把生成的证书下载到本地;将压缩包解压,找到里面的 for Nginx 压缩包再解压就是证书文件了。

wosign-certificate-7fa1cdc51ecf116fc73f826e755cb61f0e6bc93c5d4eee02c073b78b0af37dd1.png

配置 Nginx

在进行配置之前,需要将沃通生成的 SSL 证书传到服务器上。因为我没安装任何 FTP 应用,所以使用命令行通过 scp 命令把文件上传过去。

scp ourai.ws_sha256_cn/for\ Nginx/1_ourai.ws_bundle.crt user@ourai.ws:/home/www/ourai.ws.crtscp ourai.ws_sha256_cn/for\ Nginx/2_ourai.ws.key user@ourai.ws:/home/www/ourai.ws.key

接下来就是修改 Nginx 的配置文件了。可以在服务器上用 vim 命令直接修改,也可以拷贝到本地用 Sublime Text 之类的图形化编辑器修改完再传到服务器上。所增加的配置内容主要如下:

server {listen       80;listen       443 ssl;      # 对 443 端口进行 SSL 加密server_name  ourai.ws;root         /home/www/site;# 沃通生成的 SSL 证书的存放位置ssl_certificate           /home/www/ourai.ws.crt;ssl_certificate_key       /home/www/ourai.ws.key;# 其他 SSL 相关设置ssl_session_timeout       10m;ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers               EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES;ssl_prefer_server_ciphers on;# 所有 HTTP 访问都永久重定向(301)到 HTTPSif ( $scheme = http ) {rewrite ^/(.*) https://$server_name/$1 permanent;}
}

将配置文件保存并 nginx -s reload 重启 Nginx,用浏览器访问一下自己的网站看看效果。

https-protocol-77b2bc1d5b6711c475abf6b8de0104fa17c3d200987771b4c6cc686822badcea.png

很酷很屌有没有!逼格又上升了一个档次!!妈妈再也不用担心我的网站被强行插入了!!!

先别得瑟,这还只是披了一层 HTTPS 的外衣,虽然能够抵御一些攻击,但距离真正的 HTTPS 还差点。

加强安全性

在启用 HTTPS 后,一般会将通过 HTTP 访问的链接跳转到 HTTPS 的。

用户在浏览器地址栏中输入网址时基本不会带协议,而是直接输入域名,这时浏览器会先通过 HTTP 的方式访问资源从而在没有进行加密的情况下与服务器建立了连接,黑客会在跳转到 HTTPS 之前的空隙进行攻击,即「中间人攻击」。

你连接到一个免费 WiFi 接入点,然后开始浏览网站,访问你的网上银行,查看你的支出,并且支付一些订单。很不幸,你接入的 WiFi 实际上是黑客的笔记本热点,他们拦截了你最初的 HTTP 请求,然后跳转到一个你银行网站一模一样的钓鱼网站。 现在,你的隐私数据暴露给黑客了。

那么,该如何防止自己的用户在访问网站时遭遇上述事情呢?给自己的网站再加上一层保护——HSTS

Nginx 中配置起来还是很简单的,只需在配置了 HTTPS 的 server 块中加一句 add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

server {listen       80;listen       443 ssl;      # 对 443 端口进行 SSL 加密server_name  ourai.ws;root         /home/www/site;# 沃通生成的 SSL 证书的存放位置ssl_certificate           /home/www/ourai.ws.crt;ssl_certificate_key       /home/www/ourai.ws.key;# 其他 SSL 相关设置ssl_session_timeout       10m;ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers               EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES;ssl_prefer_server_ciphers on;# 主域名和子域名都启用 HSTS,过期时间为两年add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";# 所有 HTTP 访问都永久重定向(301)到 HTTPSif ( $scheme = http ) {rewrite ^/(.*) https://$server_name/$1 permanent;}
}

别忘记 nginx -s reload 重启服务器哦!

新建一个标签页,打开 Chrome DevTools 切换到「Network」选项卡,「Preserve log」前面打上勾后再次访问网站,在日志的最上面有两个看起来相同的网络请求。

log-of-requests-d2518a6384da97fa67f1b739f10ed05053a1e63a09716dc855fd9e0b965386b0.png

然而它们并不一样,第一个是 HTTP 请求,第二个是跳转后的 HTTPS 请求。再仔细点看会发现那个 HTTP 请求的状态码变了,不是 301 了,而是从未见过的 307

http-code-307-283f9fcefd5b51136496e3862d727232ba684892e1a52454bdc350f5628bf6f0.png

这个 307 跳转不是服务器端进行的,而是浏览器识别到网站设置了 HSTS 而自己进行的客户端跳转。

response-header-hsts-c8afc3b97b70353c8e93ff91349f0f2ab3543a138f5eb4ed94f2a210220443ec.png

如果设置了 HSTS,用户只要用某个现代浏览器通过 HTTPS 的方式访问过网站一次,以后即使用 HTTP 访问网站也会在请求到达服务器之前就被浏览器拦截并改成 HTTPS 请求服务器。

后记

SSL 就像是安全套,虽提高了安全性却失去了快感。HTTPS 使从发起请求到看到页面的步骤加长,响应速度必定比 HTTP 慢,性能也会有所降低。

支持 HTTPS 后,只有当页面中的静态资源(图片、脚本、样式表等)全部为 https:// 开头时才会被浏览器认为是「安全的」,网址前面会显示锁头图标。

网上搜出来的启用 HTTPS 的教程文章基本都只讲「如何配置 SSL」而没有提到「添加 HSTS」。我也是经网友提醒才给网站增加了 HSTS 以提高安全性,谢谢他。:-)

网站就是战场,是站长与黑客交手的地方。在谈「安全」时,从来就没有绝对的安全,就像安全套不能百分百避免中标。不存在一劳永逸的银弹,就是见招拆招,正所谓「道高一尺,魔高一丈」,「安全防范」都是「防君子不防小人」。要想使自己的网站时刻保持相对安全的状态,站长本身就应该是一名黑客。

忽然想起有一本关于前端安全的书买了许久没看……

web-frontend-security-b6724092e40e7473f493432f39f7177650cbfd68b49b30fec0d16343d5770133.jpg

我一定会找时间把它看掉的!(这绝逼不是「死亡 flag」……ˊ_>ˋ)

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

访问网址 token的格式_吉林省计划通知网站开发师证学历要求 报名时间 查询网址...

网站开发师证学历要求 报名时间 查询网址探讨的《网站设计与开发》课程是信息管理与信息系统专业的一门专业基础课。通过本课程的学,学生能够掌握网页设计制作的基本知识和技巧。学历要求 报名时间 查询网址在ASP的开发过程中,基本不能在Unix等一系列的服…

网站文件系统发展分布式文件系统fastDFS

网站文件系统发展 1、单机时代的图片服务器架构 初创时期由于时间紧迫,开发人员水平也很有限等原因。所以通常就直接在website文件所在的目录下,建立1个upload子目录,用于保存用户上传的图片文件。如果按业务再细分,可以在upload目…

奇奇seo优化软件_seo快速优化软件怎么推

怎么推sexaa0c1o快速优化软件,这个互联网时代,谁也不愿意在网络上缺席,企业商家更不愿意放弃网络这个巨大的宣传渠道,他们纷纷在网络上建立自己的企业网站,并且对网站进行多种优化,获取更多的流量&#xff…

python脚本根据cookies自动登录网站_Python爬虫连载6-cookie深入使用实例化实现自动登录...

一、使用cookie登录 1.直接把cookie复制下去,然后手动放到请求头 2.http模块包含一些关于cookie的模块,通过他们我们可以自动使用cookie (1)cookieJar 管理存储cookie,向传出的http请求添加cookie;cookie存…

每个人都可以学会WordPress建站

Step by Step 快速 简单明了 低成本 不管你建站的目的是做一个企业的官网还是个人生活记录或展示,或者利用网站来赚钱,采用Wordpress建站是最佳选择(据统计,全球网站差不多25%的网站都是采用wordpress,实在了不起&am…

网站图片优化的十五个原则

现在的网站大量的使用图片,那么这些图片如何优化才好呢?1)在网站设计之初,就先要做好规划,比如背景图片如何使用等等,做到心中有数。2)编辑图片的时候,要做好裁剪,之展示必要的,重要的&#xf…

python 利用Beautifulsoup爬取笑话网站

2019独角兽企业重金招聘Python工程师标准>>> 利用Beautifulsoup爬取知名笑话网站 首先我们来看看需要爬取的网站:http://xiaohua.zol.com.cn/ 1.开始前准备 1.1 python3,本篇博客内容采用python3来写,如果电脑上没有安装python3请…

服务器跑网站用nigx还是apache,Apache和IIS及nginx三大web服务器,新手站长该如何选择?...

网站上线时第一件事就是搭建运行环境,首先要选择的就在服务器上使用哪一个web服务器,现在win系统默认自带IIS而Linux则自带Apache,如果需要使用nginx则需要单独安装。困扰新手站长的就是web服务到底该使用哪一个,目前流行的3大web…

网站注册的域名服务器,网站域名注册和服务器

网站域名注册和服务器 内容精选换一换购买服务及配置特性时,操作步骤中未框选的配置项请保持默认值。申请服务时,未开通企业管理的用户页面无“企业项目”参数项,无需进行配置。如需开通企业项目,请参考如何开通企业项目/企业多账…

MOSS2007的网站和工作区

11.7 网站和工作区 在Microsoft Office Server 2007站点中,可使用顶级网站和子网站将网站内容划分为明确的、单独的可管理网站。顶级网站可以拥有多个子网站,而这些子网站自己也可以拥有多个子网站,可根据用户需要向下建设无限层次的子网站。…

如何使用Orchard搭建敏捷个人的网站(2)

在如何使用Orchard搭建敏捷个人的网站(1)中讲解了如何使用Orchard搭建一个简易的敏捷个人内容网站,第一篇主要讲解了如何下载安装主题、增加blog、制作菜单等,今天我们继续讲解一下如何增加搜索功能、增加自定义的内容类型以及显示…

12306订票候补是个坑_买票请认准12306!铁路部门:从未授权其他网站售票

春运首日的火车票已经可以在中国铁路官方APP铁路12306上购买。来源 网络截图华龙网-新重庆客户端12月16日14时30分讯(记者 姜念月)据成都铁路12306消息,2020年铁路春运为期为40天,其中节前为15天,节后25天,按照铁路春运火车票互联…

如何优化企业网站

大部分的中小企业网站却又都存在着这样的问题:网站新,内容少,缺少专业维护人员,这样的网站怎么样才能在互联网中生存下去呢?觉得对于中小企业网站的天生的劣势,我们就应该从各个细节上分析每个要点,这样才…

Arcgis更换布局模板_响应式网站作用+模板用法科普

随着移动端网站访问需求增加,“响应式网站”越来越受到用户欢迎。到底什么叫响应式网站呢?其实就是网站效果可以随着屏幕尺寸大小而自适应,不会发生变形、扭曲、缺失的现象。不管你是在使用手机、iPad,还是电脑,页面都…

全文搜索引擎有哪些?_五色时光教大家SEO搜索引擎优化方案

菜鸟请留言讨论,老鸟们请点评不足。谢谢最近开始了我的学习生涯—SEO搜索引擎优化的学习,之前看过很多的资料,也一直在学习,现在我的导师带着我一步一步的去学习,还给了我一个网站去实操,现在我总结了一下我…

刷网站关键字_毛刷厂的互联网营销之路——网站推广SEO篇

毛刷厂的互联网营销之路——网站推广SEO篇来源:安徽享搜互联科技有限公司官网谈起营销,若简单理解多数人想到的会是商品和渠道,营销的概念很广泛但不仅仅只限于上述两方面。目前国内大多数毛刷厂多是靠老客户介绍、业务员联系而来的订单&…

如何让网站打开更快第三弹--开启压缩篇

老鸟请直接看开启压缩进阶篇。菜鸟还是慢慢随着老夫的思路看吧,哇哈哈。什么是压缩?大家还记得我们第一次接触winzip软件吗?非常神奇,一个文件,经过winzip压缩后,大小可以压缩成原来的30%左右。记得当年&am…

Web设计师应该收藏的11个网站

今天,本文与大家分享11个Web设计师应该收藏的网站,这些都是我最喜爱的寻找设计灵感的网站。我很喜欢Dribbble,可以花很长的时间只是为了浏览网页,欣赏那些耀眼的设计,也很喜欢One Page Love,这是我见过的最…

腾讯云iis8.5新建网站无法访问_云服务器可以用来做什么?

随着云计算产业链的不断延伸,虚拟化、分布式、运维管理等技术渐趋发展成熟,高大上的云计算首次走向平民化,常态化,互联网企业上云已经不再是什么高门槛的技术,引发全民上云热潮!云服务器作为云计算的重要衍…