SLB是指负载均衡(Server Load Balancing),是一种常见的网络技术,用于在多个服务器之间分发和平衡网络流量的负载。
它可以将来自客户端的请求转发到多个服务器,以达到提高应用性能、可用性和可扩展性的目的。通过使用负载均衡,可以有效地处理大量的网络流量、避免单点故障和提高用户体验。
常见的负载均衡算法包括轮询、加权轮询、最小连接数等,其中轮询是最基本的算法,它按照请求顺序依次将请求分配给各个服务器。
在实现负载均衡时,可以使用硬件负载均衡器或软件负载均衡器来完成。硬件负载均衡器通常更适合大型企业网络,而软件负载均衡器则更适合小型网络和云环境。
总之,SLB是一项重要的网络技术,它可以帮助我们提高网络性能和可用性,保证了网络系统的稳定和可靠性。
作业:收集常见的web服务中间件、后端语言、数据库sql/nosql
web服务中间件:Weblogic Tomcat Jboss Jetty Webshere
Nginx:Nginx也是一款开源的Web服务器软件,它以高性能和低内存消耗而闻名,并广泛用于反向代理、负载均衡和HTTP缓存等方面
IIS是由微软开发的Web服务器软件,适用于Windows操作系统,与Windows Server捆绑提供
后端语言:java c c++ c# python php go
数据库:mysql \ oracle \ SQL server \ DB2
非关系型数据库 redis \ MongoDB
Memcached 是一个非关系型数据库,它通常被用作内存缓存系统,用于加快动态网站和网络应用程序的性能。它以键值对的形式存储数据,并且通常用于缓存经常访问的数据,以减轻后端数据库的负载。虽然它不是传统意义上的数据库,但它可以提供类似数据库的功能,尤其是在需要高速数据存取的场景下。
Elasticsearch 是一个非关系型数据库(NoSQL)。它采用了分布式、面向文档的存储模型,不需要预定义的结构或固定的表格架构。相比传统的关系型数据库,Elasticsearch 更加灵活,可以处理半结构化数据和文本搜索。
在 Elasticsearch 中,数据以 JSON 文档的形式存储,每个文档都有唯一的 ID,并且可以根据需要动态添加字段。它不需要事先定义表结构,因此可以轻松适应数据的变化和演化。
而传统的关系型数据库则使用了固定的表格和预定义的结构,需要事先定义表的结构和字段类型。这使得关系型数据库更适合处理严格结构化的数据,例如银行账户或订单等数据。
总结来说,Elasticsearch 是一个非关系型数据库,适用于全文搜索、实时分析和大规模数据处理等场景。
1.计算机网络基础
DOM 是文档对象模型,处理网页内容的方法和接口。是W3C 的标准; [所有浏览器公共遵守的标准]
BOM 是浏览器对象模型,提供与浏览器交互的方法和接口。各个浏览器厂商根据 DOM在各自浏览器上的实现;[表现为不同浏览器定义有差别,实现方式不同]
0到1023端口号需要root权限
缺省值/默认值
ip地址
a:1.0.0.0-126
b:128-191
c:192-223
- A类:10.0.0.0~10.255.255.255
- B类:172.16.0.0~172.31.255.255
- C类:192.168.0.0~192.168.255.255
私有ip:10,127,172,192
公有ip
IPv4 192.168.56.107 ipv4 nat
IPv6 128位的16进制ip
三次握手/四次挥手 面试题
负载均衡(SLB) 高可用性(HA)
mvc mvvc
ICMP协议(因特网控制报文协议)
感知网络环境
traceroute命令
数据包在网络中走过的路径
301
302(代表暂时性转移)
403 拒绝访问 (有防火墙)
502 网关错误(服务器)
3.密码学
密码学基础
密码编程学:明文加密
密码分析学:解密
厨师
编码 to base64
解码 from base
utf-8: 你 空格 %20
uncode:[\u0009\u000a\u0020-\u007f\u4e00-\u9fd5\uff01-\uff64]
Base64: = == 一个等号或两个等号
明文
密文
对称加密(共享秘钥密码)
对称加密,也被称为对称密码,是一种加密方式,它在加密和解密过程中使用相同的密钥。
对称密码体制又称私钥密码体制,该体制的特点是加密和解密使用相同的密钥消息的收发双方必须事先通过安全渠道交换密钥
优点:加解密速度快、密文紧凑、使用长密钥时的难破解
缺点:密钥分配问题、密钥管理问题、无法认证源
常见的对称密钥加密算法如下:DES、3DES、AES、RC4/5、IDEA
非对称加密
公钥密码体制又称为非对称加密体制,就是对数据加密和解密的密钥是不同的
优点:密钥分发方便、密钥保管量少、支持数字签名缺点:加密速度慢(计算量大,不适合加密大数据)、数据膨胀率高
每个实体有两个密钥:公钥公开,私钥自己保存
公钥加密,私钥解密,可实现保密通信
私钥加密,公钥解密,可实现数字签名
常见的非对称加密算法如下:
RSA:512位(或1024位)密钥,计算量极大,难破解
Elgamal、ECC(椭圆曲线算法)、背包算法、Rabin、DH等
秘钥
证书
单向散列函数
MD4、MD5
3.会话授权
认证
授权
凭证
cookie
session 是基于 cookie 实现的,session 存储在服务器端,sessionId 会被存储到客户端的
cookie 中
Token(令牌)
Refresh Token
refresh token 是专用于刷新 access token 的 token
浏览器的同源策略
同源策略是一个重要的安全策略,它用于限制一个源的文档或者它加载的脚本如何能与另一个源的资源进行交互。
它能帮助阻隔恶意文档,减少可能被攻击的媒介。例如,它可以防止互联网上的恶意网站在浏览器中运行 JS 脚本,从第三方网络邮件服务(用户已登录)或公司内网(因没有公共 IP 地址而受到保护,不会被攻击者直接访问)读取数据,并将这些数据转发给攻击者。
如果两个 URL 的协议、端口(如果有指定的话)和主机都相同的话,则这两个 URL 是同源的。这个方案也被称为“协议/主机/端口元组”,或者直接是“元组”。(“元组”是指一组项目构成的整体,具有双重/三重/四重/五重等通用形式。)
下表给出了与 URL http://store.company.com/dir/page.html 的源进行对比的示例:
URL | 结果 | 原因 |
同源 | 只有路径不同 | |
同源 | 只有路径不同 | |
失败 | 协议不同 | |
失败 | 端口不同( http:// 默认端口是 80) | |
失败 | 主机不同 |
在页面中通过 about:blank 或 javascript:
例如,about:blank 通常作为父脚本写入内容的新的空白弹出窗口的 URL(例如,通过 Window.open())。如果此弹出窗口也包含 JavaScript,则该脚本将从创建它的脚本那里继承对应的源。
data:
现代浏览器通常将使用 file:/// 模式加载的文件的来源视为不透明的来源。这意味着,假如一个文件包括来自同一文件夹的其他文件,它们不会被认为来自同一来源,并可能引发 CORS 错误。
请注意,URL 规范指出,文件的来源与实现有关,一些浏览器可能将同一目录或子目录下的文件视为同源文件,尽管这有安全影响。
警告: 这里描述的方法(使用 document.domain setter)已被弃用,因为它破坏了同源策略所提供的安全保护,并使浏览器中的源模型复杂化,导致互操作性问题和安全漏洞。
满足某些限制条件的情况下,页面是可以修改它的源。脚本可以将 document.domain 的值设置为其当前域或其当前域的父域。如果将其设置为其当前域的父域,则这个较短的父域将用于后续源检查。
例如:假设 http://store.company.com/dir/other.html 文档中的一个脚本执行以下语句:
JSCopy to Clipboard
document.domain = "company.com";
这条语句执行之后,页面将会成功地通过与 http://company.com/dir/page.html 的同源检测(假设http://company.com/dir/page.html 将其 document.domain 设置为“company.com”,以表明它希望允许这样做——更多有关信息,请参阅 document.domain)。然而,company.com 不能设置 document.domain 为 othercompany.com,因为它不是 company.com
端口号是由浏览器另行检查的。任何对 document.domain 的赋值操作,包括 document.domain = document.domain 都会导致端口号被覆盖为 null 。因此 company.com:8080 不能仅通过设置 document.domain = "company.com" 来与 company.com 通信。必须在它们双方中都进行赋值,以确保端口号都为 null 。
该机制有一些局限性。如果启用了 document-domain (en-US) Permissions-Policy,或该文档在沙箱 <iframe> 下,它将抛出一个“SecurityError” DOMException,并且用这种方法改变源并不影响 Web API 使用的源检查(例如 localStorage、indexedDB、BroadcastChannel、SharedWorker)。更详尽的失败案例列表可以在 Document.domain 的错误章节找到。
备注: 使用 document.domain 来允许子域安全访问其父域时,需要在父域和子域中设置 document.domain 为相同的值。这是必要的,即使这样做只是将父域设置回其原始值。不这样做可能会导致权限错误。
跨源网络访问
同源策略控制不同源之间的交互,例如在使用 XMLHttpRequest 或 <img> 标签时则会受到同源策略的约束。这些交互通常分为三类:
跨源写操作(Cross-origin writes)一般是被允许的。例如链接、重定向以及表单提交。特定少数的 HTTP 请求需要添加预检请求。
跨源资源嵌入(Cross-origin embedding)一般是被允许的(后面会举例说明)。
跨源读操作(Cross-origin reads)一般是不被允许的,但常可以通过内嵌资源来巧妙的进行读取访问。例如,你可以读取嵌入图片的高度和宽度,调用内嵌脚本的方法,或得知内嵌资源的可用性。
以下是可能嵌入跨源的资源的一些示例:
使用
<script src="…"></script> 标签嵌入的 JavaScript 脚本。语法错误信息只能被同源脚本中捕捉到。
使用
<link rel="stylesheet" href="…"> 标签嵌入的 CSS。由于 CSS 的松散的语法规则,CSS 的跨源需要一个设置正确的
Content-Type 标头。如果样式表是跨源的,且 MIME 类型不正确,资源不以有效的 CSS 结构开始,浏览器会阻止它的加载。
通过 <img> 展示的图片。
通过 <video> 和 <audio> 播放的多媒体资源。
通过 <object> 和 <embed> 嵌入的插件。
通过 @font-face 引入的字体。一些浏览器允许跨源字体(cross-origin fonts),另一些需要同源字体(same-origin fonts)。
通过 <iframe> 载入的任何资源。站点可以使用 X-Frame-Options 标头来阻止这种形式的跨源交互。
如何允许跨源访问
可以使用 CORS 来允许跨源访问。CORS 是 HTTP 的一部分,它允许服务端来指定哪些主机可以从这个服务端加载资源。
如何阻止跨源访问
阻止跨源写操作,只要检测请求中的一个不可推测的令牌(CSRF token)即可,这个标记被称为跨站请求伪造(CSRF)令牌。你必须使用这个令牌来阻止页面的跨源读操作。
阻止资源的跨源读取,需要保证该资源是不可嵌入的。阻止嵌入行为是必须的,因为嵌入资源通常向其暴露信息。
阻止跨源嵌入,需要确保你的资源不能通过以上列出的可嵌入资源格式使用。浏览器可能不会遵守
Content-Type 头部定义的类型。例如,如果你在 HTML 文档中指定
<script> 标记,则浏览器将尝试将标签内部的 HTML 解析为 JavaScript。当资源不是网站的入口点时,还可以使用 CSRF 令牌来防止嵌入。
跨源脚本 API 访问
JavaScript 的 API 中,如 iframe.contentWindow、 window.parent、window.open 和 window.opener 允许文档间直接相互引用。当两个文档的源不同时,这些引用方式将对 Window 和 Location 对象的访问添加限制,如下两节所述。
为了能让不同源中的文档进行交流,可以使用 window.postMessage。
规范:HTML 现行标准 & 跨源对象 。
Window
允许以下对 Window 属性的跨源访问:
方法window.blurwindow.closewindow.focuswindow.postMessage
属性window.closed只读。window.frames只读。window.length只读。window.location读/写。window.opener只读。window.parent只读。window.self只读。window.top只读。window.window只读。
某些浏览器允许访问除上述外更多的属性。
Location
允许以下对 Location 属性的跨源访问:
方法location.replace
属性HTMLAnchorElement.href只写。
某些浏览器允许访问除上述外更多的属性。
跨源数据存储访问
访问存储在浏览器中的数据,如 Web Storage 和 IndexedDB,是以源进行分割的。每个源都拥有自己单独的存储空间,一个源中的 JavaScript 脚本不能对属于其他源的数据进行读写操作。
Cookie 使用不同的源定义方式。一个页面可以为本域和其父域设置 cookie,只要是父域不是公共后缀(public suffix)即可。Firefox 和 Chrome 使用 Public Suffix List 检测一个域是否是公共后缀。当你设置 cookie 时,你可以使用 Domain、Path、Secure 和 HttpOnly 标记来限定可访问性。当你读取 cookie 时,你无法知道它是在哪里被设置的。即使只使用安全的 https 连接,你所看到的任何 cookie 都有可能是使用不安全的连接进行设置的。
同源策略:
防范xss攻击
跨域:
这两个区别
JWT:
JSON Web Token(简称 JWT)是目前最流行的跨域认证解决方案。
是一种认证授权机制
JWT 是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准(RFC 7519)。JWT 的
声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获
取资源。比如用在用户登录上。
Token:
Token 和 JWT 的区别
相同:
都是访问资源的令牌
都可以记录用户的信息
都是使服务端无状态化
都是只有验证成功后,客户端才能访问服务端上受保护的资源
区别:
Token:服务端验证客户端发送过来的 Token 时,还需要查询数据库获取用户信息,然后验证
Token 是否有效。
JWT:将 Token 和 Payload 加密后存储于客户端,服务端只需要使用密钥解密进行校验(校验也
是 JWT 自己实现的)即可,不需要查询或者减少查询数据库,因为 JWT 自包含了用户信息和加密的数据
跨域方案:jsonp和cors
4.网络安全入门
CIA信息安全的基本属性:保密性、完整性、真实性、可靠性、可用性、不可抵赖性(不可否认性)
通俗地说,网络信息安全与保密主要是指保护网络信息系统,使其没有危险、不受威胁、不出事故.
从技术角度来说,网络信息安全与保密的目标主要表现在系统的保密性、完整性、真实性、可靠性、可用性、不可抵赖性等方面.
可靠性是网络信息系统能够在规定条件下和规定的时间内完成规定的功能的特性.
可靠性是系统安全的最基于要求之一,是所有网络信息系统的建设和运行目标.
网络信息系统的可靠性测度主要有三种:抗毁性、生存性和有效性.
可用性是网络信息可被授权实体访问并按需求使用的特性.即网络信息服务在需要时,允许授权用户或实体
使用的特性,或者是网络部分受损或需要降级使用时,仍能为授权用户提供有效服务的特性.
可用性是网络信息系统面向用户的安全性能.网络信息系统最基本的功能是向用户提供服务,而用户的需求
是随机的、多方面的、有时还有时间要求.可用性一般用系统正常使用时间和整个工作时间之比来度量.
保密性是网络信息不被泄露给非授权的用户、实体或过程,或供其利用的特性.即防止信息泄漏给非授权个
人或实体,信息只为授权用户使用的特性.保密性是在可靠性和可用性基础之上,保障网络信息安全的重要手段.
完整性是网络信息未经授权不能进行改变的特性.即网络信息在存储或传输过程中保持不被偶然或蓄意地
删除、修改、伪造、乱序、重放、插入等破坏和丢失的特性.
完整性是一种面向信息的安全性,它要求保持信息的原样,即信息的正确生成和正确存储和传输
不可抵赖性也称作不可否认性,在网络信息系统的信息交互过程中,确信参与者的真实同一性.即,所有参与
者都不可能否认或抵赖曾经完成的操作和承诺.利用信息源证据可以防止发信方不真实地否认已发送信息,
利用递交接收证据可以防止收信方事后否认已经接收的信息.
可控性是对网络信息的传播及内容具有控制能力的特性.
网络安全网络安全(Cyber Security):网络系统的硬件、软件及系统中的数据受到保护,不因偶然的或者恶意的
原因而遭到破坏、篡改、泄露,系统连续可靠正常地运行,网络服务不被中断。
信息安全是信息本身的安全,ISO(国际标准化组织)的定义为: 为数据处理系统建立和采用的技术、管理上的安全保护,为的是保护
计算机硬件、软件、数据不因偶然和恶意的原因而遭到破坏(涉及可用性),更改(涉及完整性)和泄露(涉及机密性).
网络安全和信息安全的区别
1. 包含和被包含的关系:信息安全包含网络安全,信息安全还包括操作系统安全、数据库安全、硬件设
备和设施安全、物理安全、人员安全、软件开发、应用安全等。
2. 针对的设备不同:网络安全侧重于研究网络环境下的计算机安全,信息安全侧重于计算机数据和信息
的安全。
3. 侧重点不同:网络安全更注重在网络层面,比如通过部署防火墙、入侵检测等硬件设备来实现链路层
面的安全防护,而信息安全的层面要比网络安全的覆盖面大的多,信息安全是从数据的角度来看安全
防护。
通常采用的手段包括:防火墙、入侵检测、代码审计、渗透测试、风险评估等,安全防护不仅仅是在网络层
面,更加关注的应用层面,可以说信息安全更贴近于用户的实际需求及想法
法拉第笼:抗电磁干扰,服务器放在里面
MFA 多因子认证
多次认证,不仅需要密码,还需要验证码等验证