首先进行提问:https是加密传输,那么它安全吗?
简单的回顾:
HTTPS和HTTP都是网络协议,也就是规定数据如何在互联网中传输的规则。它们的主要区别在于安全性。
HTTP(Hypertext Transfer Protocol)是互联网上应用最为广泛的一种网络协议,所有的www文件都必须遵守这个标准。HTTP是客户端和服务器之间的请求-应答协议,提供了一种客户端向服务器发送信息的可能方式。
HTTPS(Hypertext Transfer Protocol Secure)是HTTP的安全版本,它在HTTP的基础上加入了SSL/TLS协议,从而在客户端和服务器之间提供了一个加密的通信通道。因此,HTTPS协议可以保护用户和服务器之间的通信不被窃听或篡改。
另外,HTTP和HTTPS的默认端口也不同:HTTP的默认端口是80,而HTTPS的默认端口是443。
至于相同点,HTTP和HTTPS都是基于TCP协议的,也就是说,它们都使用TCP协议来进行数据传输。此外,它们都用于从服务器获取并提交数据,例如浏览网页、提交表单等。
那么重点来了,https安全吗?
HTTPS传输并不是完全安全的,因为它仍然存在以下一些安全威胁:
1、中间人攻击(MITM攻击) HTTPS使用SSL / TLS协议进行加密和认证,但这些协议不保证通信的完整性。中间人攻击者可以欺骗用户,使其相信他们正在与正确的网站通信,但实际上被重定向了到攻击者的服务器。攻击者可以窃取用户数据、修改数据或伪造数据。
2、SSL/TLS漏洞 尽管SSL / TLS协议是HTTPS的核心安全特性,但证书和实现SSL / TLS的软件也存在漏洞。例如,心脏出血漏洞(Heartbleed)允许攻击者访问服务器上存储的敏感信息,而Poodle攻击允许攻击者在SSL / TLS连接上强制执行不安全的协议版本。
3、跨站点脚本攻击(XSS) 跨站点脚本攻击是一种利用网站漏洞的攻击,攻击者可以注入恶意脚本,使其在用户浏览器中运行。即使连接是通过HTTPS进行的,攻击者也可以利用此攻击。
4、窃取Cookie 尽管HTTPS确保了数据传输的加密,但它并未解决所有安全问题。例如,攻击者可以使用各种技术从浏览器中窃取Cookie,包括会话劫持和会话固定攻击。
综上所述,HTTPS传输并非完全安全,并且仍然存在一些安全威胁。但与HTTP相比,使用HTTPS会提供更高的安全性,可以大大减少未经授权访问和数据窃取的风险。
听懂的话点个赞,没有的话也别急,往下接着看:
举个简单的例子:百度,百度请求是在地址栏拼接,也就是所谓的明文,而https呢是隐藏的,因此很多新手认为他就是安全的,但你可以打开F12重新刷新页面,点击“网络”,你就会发现调用的接口,点击会有详细的信息:请求地址、状态码、参数、响应时间...等等
如何提高安全?
简单的方法:
// 禁止缩放 const keyCodeMap = { // 91: true, // command 61: true, 107: true, // 数字键盘 + 109: true, // 数字键盘 - 173: true, // 火狐 - 号 187: true, // + 189: true, // - }; // 覆盖ctrl||command + ‘+’/‘-’ document.onkeydown = function (event) { const e = event || window.event; const ctrlKey = e.ctrlKey || e.metaKey; if (ctrlKey && keyCodeMap[e.keyCode]) { e.preventDefault(); } else if (e.detail) { // Firefox event.returnValue = false; } }; document.addEventListener('keydown', function (event) { if (event.ctrlKey) { event.preventDefault(); // 取消默认行为 // 这里可以添加你自定义的处理代码 } }); // 覆盖鼠标滑动 document.body.addEventListener( 'wheel', (e) => { if (e.ctrlKey) { if (e.deltaY < 0) { e.preventDefault(); return false; } if (e.deltaY > 0) { e.preventDefault(); return false; } } }, { passive: false }, ); //按键触发 document.onkeydown = function () { //禁止 F12 // if (window.event && window.event.keyCode == 123) { // event.returnValue = false; // } //禁止右键 if (event.ctrlKey && window.event.keyCode == 85) { return false; } }; //网站禁止右键 document.body.oncontextmenu = function () { self.event.returnValue = false; };
简单还好使,但是还是加密传输比较好,下篇介绍加密