‘壹’ 前端是否需要对密码进行加密传输 && HTTPS
最近学习node,写demo登陆和注册功能的时候因为要考虑后台的加密和安全所以也想了下前端的,前端传输密码的时候是否应该加密之后再传输呢
看了一些网站的登陆,csdn、等是明文传输,但腾讯、网络这些一线大站是经过前端加密的,看了些大佬的文章,顺便自己搬个凳子记个笔记
前端的加密本身不能对网站的安全性有任何提高功能,所有的关于网站的安全技术都应该放在后台,但是这也不是完全没有意义,可以增加攻击成本,尽可能降低攻击带来的损失,毕竟丢了密文比丢了明文要强,而且犯罪分子技术参差不齐,简单的加密能够拦截很大一部分菜鸟,至于高手。。。
最后看到比较统一的是隐秘信息传输应该使用https
这篇文章只是想弄懂流程和原理,不会去纠结具体的术语
HTTP协议以明文方式发送内容,不提供任何方式的数据加密,处在同一网络中的其它用户可以通过网络抓包来窃取和篡改数据包的内容,甚至运营商或者wifi提供者,有可能会篡改http报文,添加广告等信息以达到盈利的目的
可以通过和SSL(Secure Socket Layer,安全套接层)组合使用来为浏览器和服务器之间的通信加密。在这条加密线路上进行通信的http被称为HTTPS(HTTP Secure,超文本传输安全协议)。
SSL证书(Secure socket layer),就是遵守SSL协议,由受信任的数字证书颁发机构CA颁发,主要用来提供对用户浏览器和服务器的认证,对传送的数据进行加密和隐藏,确保数据在传送中不被改变保证数据的完整性,加密方式为“非对称加密”和“对称加密”。
1、用户连接到你的Web站点,该Web站点受服务器证书所保护
2、你的服务器进行响应,并自动传送你网站的数字证书给用户,(浏览器内置一个受信任的机构列表和这些机构的证书)用户的浏览器查看该证书是否存在于浏览器的受信任机构列表中,并且通过服务器证书中的信息与当前正在访问的网站(域名等)是否一致来鉴别你的网站,鉴别没成功会提醒用户是否继续该访问
3、鉴别成功后,用户的浏览器产生一把唯一的会话钥匙,用以跟网站之间所有的通讯过程进行加密,会话密钥是随机生成,每次都会有不一样的结果,
4、使用者的浏览器以网站的公钥对交谈钥匙码进行加密,以便只有让你的网站得以阅读此交谈钥匙码
1、使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
2、HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
3、HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
4、谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。
1、HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%
2、HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;
3、SSL证书需要钱,功能越强大的证书费用越高
4、SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名
5、HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。
知乎各位大佬的回答 https://www.hu.com/question/25539382
HTTP与HTTPS的区别 https://www.cnblogs.com/wqhwe/p/5407468.html
‘贰’ 求教,使用https链接,证书需要配置在最前端的nginx吗
https证书需要配置在最前端的服务器上
如果nginx位于整体服务器最前端,需要配置到nginx上
如果nginx前面还有CDN,则需要在CDN节点上配置,也就是说只要用到https访问的,都需要配证书,CDN和nginx可以通过http,这样不用在nginx上配证书,否则nginx同样需要配
‘叁’ 前端网络高级篇(一)HTTPS
HTTP是Web中常见的通信方式,无状态,简单易用。当然,它的不足之处也非常明显:
为了解决HTTP协议的痛点,采用通信加密的方式,继而出现HTTPS协议。
HTTPS其实是有两部分组成: HTTP + SSL / TLS ,也就是在HTTP上又加了一层处理加密信息的模块。
服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。
加密技术有两种:
https采用共享密钥加密和公开密钥加密两者并用的混合加密机制 ,具体加密方式参考第二节。
SSL不仅提供加密处理,而且使用证书,来确定对方的非伪装的。
证书是由值得信任的第三方机构颁发,用以证明服务器和客户端是实际存在的。
HTTP+加密+认证+完整性保护=HTTPS 。上节提到,“https采用共享密钥加密和公开密钥加密两者并用的混合加密机制”,解释一下,就是用公开密钥加密 传递密钥 ,用共享密钥加密算法 加密报文内容 。
为什么HTTPS要采用混合加密呢?
因为公开密钥加密的处理速度要远远慢于共享密钥加密,所以,在通信最频繁的环节 - “报文加密”,采用了共享密钥。那么,更加安全的公开密钥加密,就非常适合“报文密钥”的传递来。
具体加密,解密,验证步骤如下:
‘肆’ nginx配置ssl使用https(解决前端跨域问题)
想要使用https访问nginx上部署的项目首先得有ssl证书,ssl证书可以去阿里云或腾讯云之类的平台购买,兆灶尺族高当然也有免费的。我这里贴出nginx的相关配置来支持https访问,如果不知道怎样配置或者搞不清楚原理的朋友就直接照搬我的这部分server配置就行。
PS:nginx需要安装ssl模块,如果使用docker启动的nginx则已经有了不需辩埋要安装。
这里不仅配置了https对于nginx的访问,还配置了代理来访问后端接口,所以前端在做请求时,请求的地址应该写为 https://www.abc123.com/api/ +接口地址,这样前端就能使用https来访问到后端的接口了。
顺便贴一个把http重定向为https的配置
‘伍’ https前端怎么加密
HTTPS加密需要办理SSL证书,并且安装到独立服务器,实现前段HTTPS。网页链接
‘陆’ nginx解决https前端无法连接mq(ws)
常规http访问的地址下
var ws = new WebSocket('ws://ip:port/ws')
如果使用埋帆https,则提示需要使用wss
解决办弯罩雹法:nginx在1.3版本以后支持websocket协闷森议,websocket连接进入的时候,进行一个连接升级将http连接变成websocket的连接
server {
listen 443;
server_name 域名;
ssl on;
ssl_certificate /root/ssl/1.crt;
ssl_certificate_key /root/ssl/2.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location /ws {
proxy_pass http://ip:61614; # 代理mq
proxy_read_timeout 60s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'Upgrade';
}
前端页面使用: var ws = new WebSocket('wss://{域名}/ws'); 即可
‘柒’ http怎么与https缓存公用前端
http与https缓存公用前端具体解释如下。
HTTP:HTTP(HperTextTransferProtocol)超文本传输协议,是用于从万维网(WWW:WorldWideWeb)服务器传输超文本到本地浏览器的传送协议。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)它是TCP/IP协议的一个应用层协议,用于定差戚义WEB浏览器与WEB服务器之间交换数据的过虚茄陵程。
HTTPS()安全超文本传输协议,是以安纳核全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。这是带有加密的HTTP,它确保了在计算机和服务器之间通过互联网传输的所有数据都是安全的,这是通过使数据不可读来实现的,也就是通过使用加密算法来打乱传输的数据。
‘捌’ 对于前端来说http与https请求有区别么
对于前端用户来说,访问http网站可能会收到“网站不安全”、“连接不私密”等等安全警告,影响正常访问,如果是电商网站还会影响购买行为。而https网站因为安装了SSL证书,比较安全,受浏览器信任,不会弹出安全警告,能建立用户信任等。建议去数安时代申请SSL证书,兼容性比较好。
‘玖’ https 前端做请求需要做什么处理吗
如果是新改的https的话,需要对之前的http做301跳转;
然后在站长平台提交一下https;
以后发链接都用https的。
‘拾’ 前端面试01:说一下 http 和 https
https 的 SSL 加密是在传输层实现的。
(1)http 和 https 的基本概念
https 协议的主要作用是: 建立一个信息安全通道,来确保数组的传输,确保网站的真实性。
(2)http 和 https 的区别?
http 传输的数据都是未加密的,也就是明文的,网景公司设置了 SSL 协议来对 http 协议传输的数据进行加密处理,简单来说 https 协议是由 http 和 ssl 协议构建的可进行加密传输和身份认证的网络协议,比 http 协议的安全性更高。
主要的区别如下:
(3)https 协议的工作原理
(4)https 协议的优点
谷歌曾在 2014 年 8 月份调整搜索引擎算法,并称“比起同等 HTTP 网站,采用 HTTPS 加密的网站在搜索结果中的排名将会更高”。
(5)https 协议的缺点