【计算机网络】网络安全,HTTP协议,同源策略,cors,jsonp

news2024/9/20 9:34:32

❤️ Author: 老九
☕️ 个人博客:老九的CSDN博客
🙏 个人名言:不可控之事 乐观面对
😍 系列专栏:

文章目录

  • 网络安全
    • 非对称加密
    • 中间人攻击
  • HTTP协议
    • 同源策略
    • cors
    • jsonp

网络安全

非对称加密

  • 会生成一个公钥一个私钥,我现在有一个东西,我用公钥给它加密,公钥可以公开给任何一个人,只有对应的私钥可以解密;如果用对称加密最重要的坏处就是需要在网络上传输密码,这样的话就很危险了
  • 实现数字签名
    首先,我们生成一对密钥,然后我们对要发送的文件进行处理,例如使用MD5或者sha1的算法进行文件内容的加密,接下来,我们使用私钥对这个加密过的文件进行加密,生成一个数字签名。这个签名是唯一的,只有我们拥有的私钥才能生成它。我们将这个文件和数字签名一起发送给对方。对方收到文件和签名后,会使用我们公开的公钥来解密签名,获得到的文件和这个发送过来的文件进行比较,如果两者一致,说明文件没有被篡改,因为只有拥有私钥的人才能正确生成签名。
  • 如何证明通信的对方就是想要的对方?
    这时候就需要使用数字证书。对方需要出示由权威机构颁发的数字证书,证书包含对方的公钥以及权威机构的数字签名。接收方会通过权威机构的公钥来验证数字签名的有效性,确保证书的真实性。一般情况下,计算机在出厂时已经预装了一些权威机构颁发的证书,对这些证书设置为信任状态。因此,当接收方验证通过证书后,就可以信任对方的公钥了。然后可以使用对方的公钥来加密要发送的信息,只有对方拥有对应的私钥才能解密。
    数字签名是保证发送的文件过程中没有被篡改,数字证书是保证发送的对方是我想要的对方

中间人攻击

  • 当通信双方进行加密通信的时候,中间人会尝试伪装成合法的通信终端,通过买通CA机构的证书,并且黑掉DNS服务器,将跳转地址跳转到中间人的服务器ip,然后它同时与双方进行解密和转发,使双方认为他们在进行安全通信,但实际上所有的数据都经过了中间人的窃取和篡改。

HTTP协议

  • 超文本传输协议,互联网上的数据都是通过这个协议传输的
  • 当将一个网址在浏览器的地址栏打开,首先浏览器向DNS服务器请求和这个域名关联起来的ip,并在对应端口上建立TCP连接,如果服务器存在并且接受这个连接,浏览器将在这个接口上发送内容(请求行,请求头,请求体),服务器会通过这个连接响应回复相同类型的内容(响应行,响应头,响应体)
  • 请求
    请求方法 请求资源路径 协议版本
    头1:值1
    头2:值2
    Host:www.baidu.com //请求这个资源时使用的域名
    User-Agent:xxxxxx //请求这个资源所使用的浏览器ua字符串(在BOM的navigator中存在)
    Content-Length:2343 //以字节为单位的请求体长度
    。。。
    <回车>
    请求体
  • 响应
    协议版本 响应状态码 响应状态码的解释
    头1:值1
    头2:值2
    Data:时间 //响应发送的时间
    Content-Length:2343 //以字节为单位的响应体长度
    。。。
    <回车>
    响应体

同源策略

  • 浏览器的同源策略(Same-Origin Policy)是一种安全机制,用于限制网页或脚本在浏览器中与其他源(域名、协议和端口)的文档进行交互的能力。同源策略的目的是防止恶意网站通过脚本等方式获取或篡改与其他源的敏感数据。通俗来说就是A网站不能随意的向B网站的资源发起请求,或者A网站的页面向同一个浏览器的B网站的页面发起沟通,浏览器都会阻止;但B网站的服务器可以解除此限制,通过在响应头里加上特定的头部字段来实现。

cors

  • 跨域的方法就是在响应头中加一个Access-Control-Allow-Origin: *;之后,这个资源就可以被其他人跨域访问了;正常来说如果没有设置响应头的话,可以发出去请求资源,但是由于同源策略机制,不能收到资源。
  • 这里有一个概念是预检请求,预检请求就是当你要请求一个服务器的资源的时候,会对服务器发一个HTTP OPTIONS请求,以获知服务器是否允许该实际请求,这样可以避免跨域请求对服务器的用户数据产生未预期的影响。
  • 简单请求不需要预检请求,若请求满足所有下述条件,则可以视为简单请求。
    1.使用下列方法:get,head,post
    2.只允许设置这些头部
    在这里插入图片描述
    3.content-Type只能是这几个

在这里插入图片描述

  • 通俗的来讲,稍微设置一些额外的请求头之类的,就不是简单请求了,就需要发预检请求了,响应回来的头部包括这四个字段
    在这里插入图片描述

jsonp

  • jsonp是另一种跨域的方法,适用于比较古老的浏览器,如果浏览器不认识Access-control-Allow-Origin类似的响应头的字段,原理就是利用了script标签可以请求别的网站的资源,只能获取数据发get请求。
    在这里插入图片描述
    在这里插入图片描述

————————————————————————
♥♥♥码字不易,大家的支持就是我坚持下去的动力♥♥♥
版权声明:本文为CSDN博主「亚太地区百大最帅面孔第101名」的原创文章

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

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

相关文章

Arm发布最新内核 : Corte-X4/A720/A520,支持Armv9.2

1、背景 Arm 是一家设计智能手机的CPU内核的公司&#xff0c;并且每年它都会进行新的迭代&#xff0c;这些迭代随后将集成进芯片SOC&#xff0c;例如当年的旗舰 Snapdragon 、 MediaTek Dimensity。2023年&#xff0c;发布了新的旗舰级内核&#xff1a; Cortex-X4 超大核、Cort…

数据集成到可视化分析,轻松驾驭数据洞察力:ETLCloud与帆软BI完美结合

在当今数据驱动的业务环境中&#xff0c;企业需要快速而准确地获取、处理和分析大量的数据。为了满足这一需求&#xff0c;ETLCloud通过和帆软BI的集成提供了一种强大的数据采集和数据分析解决方案&#xff0c;通过可视化的ETL工具和灵活的BI功能&#xff0c;帮助企业快速实现高…

【笔记整理】元学习笔记

【笔记整理】元学习笔记 文章目录 【笔记整理】元学习笔记一、元学习基础概念1、概述&#xff08;“多任务&#xff0c;推理&#xff0c;快速学习”&#xff09;1&#xff09;Meta-learning&#xff08;“学习如何学习” “老千层饼”&#xff09;2&#xff09;Transfer learn…

JDBC查询数据库——普通、流式、游标

问题 通过JDBC对MySQL进行数据查询时&#xff0c;有个很容易踩的坑&#xff0c;以下面代码为例&#xff1a; public static void selectNormal() throws SQLException{Connection connection DriverManager.getConnection("jdbc:mysql://localhost:3306/test", &qu…

【一次调频】考虑储能电池参与一次调频技术经济模型的容量配置方法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【IEEE/TOP录用】中科院2区TOP仅3个月录用~

一、【录用案例】 喜提一篇IEEE旗下中科院2区TOP录用&#xff1b; 2023/1/31提交&#xff0c;2023/5/26录用&#xff0c;仅3个月零26天录用&#xff1b; 传感器类SCIE&EI 【IF及分区】IF:4&#xff0c;JCR1/2区&#xff0c;中科院2区&#xff1b; 【检索情况】SCIE&E…

c语言编程练习题:7-42 整除光棍

#include <stdio.h>int main() {int x,s1,n1;scanf("%d",&x);while(s<x){ss*101;n;}while(1) {printf("%d",s/x); if(s%x0) break;s(s%x)*101;n;}printf(" %d",n);return 0; }代码来自&#xff1a;https://yunjinqi.top/article/16…

pdf如何转换成jpg图片?

pdf如何转换成jpg图片&#xff1f;PDF&#xff08;Portable Document Format&#xff09;是一种常见的文件格式&#xff0c;由Adobe Systems创建。与其他文档格式相比&#xff0c;它具有固定页面布局和跨平台兼容性等优点&#xff0c;因此广泛应用于电子书、论文、技术手册、合…

从外包到阿里,这 2 年 5 个月 13 天到底发生了什么?

个人背景&#xff1a; 本人毕业于浙江某二本院校&#xff0c;算是科班出身&#xff0c;毕业后就进了一家外包公司做测试&#xff0c;当然不是阿里的外包&#xff0c;具体什么公司就不透露了&#xff0c;在外包一呆就呆了整整 2 年多&#xff0c;直到现在才从外包离开&#xff…

Linux上jdk无法执行二进制文件及​gzip: stdin: invalid compressed data–format violated​报错

首先输入命令 java -version 直接给我报错&#xff1a;无法执行二进制文件 网上找了一堆&#xff0c;后面你得看看自己的Linux架构是什么&#xff0c;输入以下命令查看linux的操作系统版本 cat /proc/version 我当时华为云选择的服务器是openEuler。看到aarch64才反应过来我…

ATECLOUD芯片自动化测试平台,打破传统自动化测试5大问题

芯片测试通常包括以下几个步骤&#xff1a;设计验证测试&#xff08;Design Verification Testing&#xff09;&#xff1a;在设计阶段&#xff0c;通过一系列的仿真和验证测试来确保设计的正确性和可行性。这些测试可能包括电路板布局、逻辑分析、时序分析等。原型验证测试&am…

U盘超级加密3000忘记密码该怎么办?

作为一款专业的U盘加密软件&#xff0c;U盘超级加密3000是目前最受欢迎的U盘加密软件之一&#xff0c;它可以简单有效地加密U盘数据&#xff0c;最大程度的降低U盘数据泄露的风险。那么U盘超级加密3000忘记密码该怎么办呢&#xff1f; U盘超级加密3000一共有4处可以设置密码的场…

【Python】一个房贷计算器功能的小案例

题目要求&#xff1a; 房贷计算公式如下: 〉每月月供参考贷款金额[月利率(1&#xff0b;月利率)^还款月数]{[(1月利率)^还款月数]–1}>还款总额每月月供参考期限 12 ≥支付利息还款总额–贷款金额10000 以上计算方式中月利率(月利率利率12&#xff09;)指以月为计息周期计算…

Flutter的RawMaterialButton按钮

RawMaterialButton介绍 简介 Flutter的RawMaterialButton是一个具有原始材料样式的可点击的按钮控件。它可以用于创建自定义的按钮和交互元素&#xff0c;具有许多可自定义的属性。自定义更灵活。 重要属性 以下是RawMaterialButton的一些常用属性&#xff1a; onPressed&…

为什么要进行业务连续性管理?

为什么要进行业务连续性管理&#xff1f;在现代社会中&#xff0c;企业日常经营所面临的风险越来越多样化、复杂化。突发事件如自然灾害、供应链中断、网络攻击等都有可能对企业生产经营带来巨大影响&#xff0c;甚至导致公司破产倒闭。因此&#xff0c;保证业务连续性显得尤为…

GPT Demo 分享|日不落直播间接入虚拟人AI互动

摘要 虚拟人和数字人是人工智能技术在现实生活中的具体应用&#xff0c;它们可以为人们的生活和工作带来便利和创新。在直播间场景里&#xff0c;虚拟人和数字人可用于直播主播、智能客服、营销推广等。接入GPT的虚拟人像是加了超强buff&#xff0c;具备更强大的自然语言处理能…

面试:JS运行机制

浏览器端和node端的js运行机制执行的过程&#xff0c;进行两者的运行机制比较&#xff0c;以及同步任务和异步任务的说明&#xff0c;两种异步任务的必要性&#xff0c;以及各自有哪些回调&#xff0c;部分回调的优先级。 JS运行机制复述 首先js执行&#xff0c;会有一个函数执…

深度学习--优化器篇(超详细付代码测试流程包含:SGD,SGDM,NAG,Adagrad,RMSProp,Adam,Adadelta,Nadam等常用优化器)

引言 在深度学习过程中总会在代码中遇到优化器.Adam()&#xff0c;在上一篇实现卷积神经网络CNN的代码分析中也提到了优化器的概念,那么优化器如何通俗的理解呢&#xff1f;个人通俗理解(仅供参考)&#xff1a;为梯度下降法配置的一个的"领航员"&#xff0c;寻找模型…

realman——控制真实的机械臂

概述 MoveIt!完成运动规划后的输出接口是一个命名为“FollowJointTrajectory”的 action,其中包含了一系列规划好的路径点轨迹,与使用 MoveIt!控制 Gazebo中的机械臂不同的是,虚拟机械臂有 gazebo 的 ros_control 插件自动帮我们获取了follow_joint_trajectory 的动作 acti…

MVI56-GSC 串行增强通信模块

通用ASCII串行增强通信模块 MVI56E-GSC/GSCXT 通用ASCII串行增强通信模块允许Rockwell Automation ControlLogix可编程自动化控制器(PACs)使用非特定ASCII字符文本串或字节值串行通信协议轻松与串行设备连接。 MVI56E-GSC增强功能包括通过模块的以太网端口进行本地和远程诊断…