网络安全:
网络安全攻击分为被动攻击和主动攻击。
-
被动攻击:是指攻击者从网络上窃取了他人的通信内容,通常把这类的攻击称为截获,被动攻击只要有2种形式:消息内容泄漏攻击和流量分析攻击。由于攻击者没有修改数据,使得这种攻击很难被检测到。
-
主动攻击:直接对现有的数据和服务造成影响,常见的主动攻击类型包括:
-
篡改:攻击者故意篡改网络上发送的报文,升值把完全伪造的报文发送给接收服务器。
-
恶意程序:恶意程序种类法躲,包括:计算机病毒,蠕虫,木马,流氓软件
-
拒绝服务Dos:攻击者向服务器不停地发送报文,使服务器无法提供正常的服务。
DNS劫持:
DNS劫持即域名劫持,通过将原域名对应的iP地址进行替换,从而是用户访问到错误的网站,使用户无法访问正确的网站。
预防:
1.直接通过IP访问
2.域名劫持只能在特定的网络范围,所以直接配置公用的DNS服务器:8.8.8.8
CSRF:跨站请求伪造,挟持用户在当前已登录的web应用程序上执行非本意的操作的来进行攻击。
预防:
1.检查referer字段:referer字段只能是同一个服务器IP
2.添加校验token,检验请求中的token是否是正确的
3.敏感操作的多重认证校验:对于一些敏感操作,需要多重校验
XSS攻击:跨站脚本攻击,
预防:对输入的字段进行过滤,对于一些连接禁止跳转,限制输入长度
对称加密和非对称加密有什么区别:
1.对称加密:是指加密和解密用的是同一个秘钥,优点是运算速度较快,缺点是如何安全的将秘钥发送给另一方,常见的对称加密:DES,AES。
2.非对称加密:加密和解密使用的是不同的秘钥(公钥和私钥)。公钥和私钥是成对存在的,如果使用了公钥进行加密,那么必须使用对应的私钥进行解密。常见的非对称加密算法:RSA。
AES和DES比较;https://md5.cn
DES:美国加密标准,只有64位
AES:高级加密标准。能对128,192,256在内的各种长度文本加密,
http,https,ftp:都是在应用层
tcp/udp是在传输层
网络综合:
websocket和socket的区别:
socket具体来说是一套标准,他完成了对于TCP/IP的高度封装,屏蔽网络细节,方便开发者进行网络编程。他等于IP地址+端口+协议
websocket是一个持久化的协议,用来解决Http不支持持久化连接的问题。
GET和POST区别:
-
get请求时把请求参数放在路径上,相对于POST请求把请求参数放入Body中,post请求更安全点,并且url有长度限制,请求体对于大小没有限制。
-
get请求其实是只用于查看信息,不会改变服务器上的信息,POST可以用来改变服务器上信息。所以从数据库层面上来看,GET符合幂等性和安全性。
-
get请求时能够被缓存
URL长度本身是没有限制的,真正限制URL长度的是web浏览器。
http1.0默认的是短连接,http1.1默认是长连接,https是使用SSL/TLS加密(也是三次握手),http2.0存在重传等问题,http3使用UDP和QUIC(quick UDP Connections)
HTTP和HTTPS区别:
-
HTTP超文本传输协议都是明文进行传输,存在安全风险。HTTPS使用的SSL/TLS安全协议,报文能够加密传输
-
HTTP连接建立相对简单只需要TCP的三次握手,而HTTPS不仅是TCP三次握手,还需要进行SSL/TLS的三次握手验证,才能进行报文加密传输
-
http端口80,HTTPS端口443,
-
https需要向CA申请数字证书,保证服务器的身份是可信的。
http协议是无状态的,
三次握手中每一次没收到报文会发生什么情况?
1.第一次握手,服务端没有抽到SYN请求报文,服务端不做任何动作。而 客户端在一段时间内因为没有到服务端返回的确认报文,会在等待一段时间后再重新发送SYN报文,如果一直没有接收到服务端响应报文,会重复一直发,直到到达最大重发次数,返回建立连接失败。
2.第二次握手,客户端未收到服务端发送过来的ACK报文,会导致可会断一直发送重传,直至次数限制,服务端会一直阻塞在等待客户端给返回的ACK报文
3.第三次握手,Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:自己发送、接收正常,对方发送、接收正常