• https和http的区别及安全性


    首先进行提问: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重新刷新页面,点击“网络”,你就会发现调用的接口,点击会有详细的信息:请求地址、状态码、参数、响应时间...等等

    如何提高安全?

    简单的方法:

    1. // 禁止缩放
    2. const keyCodeMap = {
    3. // 91: true, // command
    4. 61: true,
    5. 107: true, // 数字键盘 +
    6. 109: true, // 数字键盘 -
    7. 173: true, // 火狐 -
    8. 187: true, // +
    9. 189: true, // -
    10. };
    11. // 覆盖ctrl||command ++/‘-’
    12. document.onkeydown = function (event) {
    13. const e = event || window.event;
    14. const ctrlKey = e.ctrlKey || e.metaKey;
    15. if (ctrlKey && keyCodeMap[e.keyCode]) {
    16. e.preventDefault();
    17. } else if (e.detail) {
    18. // Firefox
    19. event.returnValue = false;
    20. }
    21. };
    22. document.addEventListener('keydown', function (event) {
    23. if (event.ctrlKey) {
    24. event.preventDefault(); // 取消默认行为
    25. // 这里可以添加你自定义的处理代码
    26. }
    27. });
    28. // 覆盖鼠标滑动
    29. document.body.addEventListener(
    30. 'wheel',
    31. (e) => {
    32. if (e.ctrlKey) {
    33. if (e.deltaY < 0) {
    34. e.preventDefault();
    35. return false;
    36. }
    37. if (e.deltaY > 0) {
    38. e.preventDefault();
    39. return false;
    40. }
    41. }
    42. },
    43. { passive: false },
    44. );
    45. //按键触发
    46. document.onkeydown = function () {
    47. //禁止 F12
    48. // if (window.event && window.event.keyCode == 123) {
    49. // event.returnValue = false;
    50. // }
    51. //禁止右键
    52. if (event.ctrlKey && window.event.keyCode == 85) {
    53. return false;
    54. }
    55. };
    56. //网站禁止右键
    57. document.body.oncontextmenu = function () {
    58. self.event.returnValue = false;
    59. };

    简单还好使,但是还是加密传输比较好,下篇博客介绍加密

  • 相关阅读:
    java惠济区疫情期间监测管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    Linux SysRq 简介
    (02)Cartographer源码无死角解析-(09) gflags与glog简介、及其main函数讲解
    线性回归的神经网络法——机器学习
    容器基础镜像的编写及最佳实践
    2022年9月月赛乙组 T3.棋盘问题
    动态规划基础概念
    应用多GPU卡运行的总结
    【c++】向远程服务器传输文件实现
    自然语言处理实验2 字符级RNN分类实验
  • 原文地址:https://blog.csdn.net/m0_72196169/article/details/133784836