网络编程:

ISO模型与协议

1.应用层有哪些协议?

Telnet,FTP,HTTP,SNMP,DNS等等

Http1.0:需要使用Keep-alive参数来告知服务器端需要建立一个长连接

Http1.1:默认长连接,支持只发送header信息,可以用作权限请求.支持Host域

Http2.0:多路复用的技术,做到同一个连接并发处理多个请求.Http2.0使用HPACK算法对header的数据进行压缩.支持Http2.0的web server请求数据的时候,服务器会顺便把客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务器端获取.这种方式非常合适加载静态资源.

2.表示层有哪些协议?主要作用

对上层数据进行变换(加密,解密,压缩,格式转换等),确保两台主机的应用程序能够理解.

协议有ASCII,ASN.1,JPEG,MPEG

3.会话层主要作用?

负责管理主机之间的会话进程,负责建立,管理,终止进程之间的会话.

4.传输层作用,有哪些协议?

将上层数据分段并提供端到端的,可靠或不可靠的传输,还要处理端到端的差错控制和流量控制问题.

协议有:TCP,UDP,SPX

5.网络层作用,有哪些协议?

对子网间的数据包进行路由选择,还可以实现拥塞控制,网际互连等功能.

协议有IP,IPX,RIP,OSPF

6.数据链路层作用,有哪些协议?

在不可靠的物理介质上提供可靠的传输.实现物理地址寻址,数据的成帧,流量控制,数据的检错,重发等

协议有SDLC,HDLC,PPP,STP,帧中继

7.物理层作用

为上层协议提供一个传输数据的物理媒体.

TCP\IP模型和协议

1.应用层:单位是数据段,协议有FTP,TELNET,HTTP,SNMP,TFTP,NTP,DNS

2.传输层:单位是数据包,协议有TCP,UDP

3.网络层:单位是数据帧,协议有IP

4.网络接口层:单位是比特,协议有ARP,RARP

TCP拆包和粘包怎么解决

BIO NIO AIO

BIO:同步阻塞IO,每个请求都要一个线程来处理

NIO:同步非阻塞IO,一个线程可以处理多个请求,适用于短连接,小数据

AIO:异步非阻塞IO,一个线程处理多个请求,使用回调函数实现,适用长连接,大数据

DDOS攻击原理与防御方式

SYN flood:伪造ip地址发送请求,占满半连接队列,导致正常链接被服务器抛弃。攻击方需要很高的带宽资源。
ACK flood:大量ACK连接请求服务器,服务器需要花费CPU资源去查询连接队列并回应。只有当流量很高时才会对服务器造成影响。
Connection Flood:利用真实IP,在服务器上建立大量连接,从而占满服务器连接队列,导致正常连接被丢弃。
HTTP Get Flood:发送大量会产生sql查询的连接,使得数据库负载很高。

CSRF跨站请求伪造原理

攻击者盗用了你的身份,以你的名义发送恶意请求。
例子:假如你去银行网站上通过请求http://www.mybank.com/Transfer.php?toBankId=11&money=1000来消费1000元。然后登陆某个恶意网站,上面有这么一段代码 。由于你没有登出银行网站,因此会再消费1000.
CSRF攻击是源于WEB的隐式身份验证机制!WEB的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的!
防御方式:1.验证码;2. 后台生成token,让前端请求携带。3.使用对称加密,后端随机给前端一个密钥,前端进行加密,后端解密。

会话劫持:

通过暴力破解、 预测、窃取(通过XSS攻击)等方式获取到用户session
防御方式
更改Session名称
关闭透明化Session ID。透明化Session ID指当浏览器中的Http请求没有使用Cookie来存放Session ID时,Session ID则使用URL来传递。
设置HttpOnly。通过设置Cookie的HttpOnly为true,可以防止客户端脚本访问这个Cookie,从而有效的防止XSS攻击。

XSS攻击:

XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人发送虚假诈骗信息,可以删除用户的日志等等,有时候还和其他攻击方式同时实施比如SQL注入攻击服务器和数据库、Click劫持、相对链接劫持等实施钓鱼,它带来的危害是巨大的,是web安全的头号大敌。
XSS反射型攻击,恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的。
XSS存储型攻击,恶意代码被保存到目标网站的服务器中,这种攻击具有较强的稳定性和持久性,比较常见场景是在博客,论坛等社交网站上,但OA系统,和CRM系统上也能看到它身影,比如:某CRM系统的客户投诉功能上存在XSS存储型漏洞,黑客提交了恶意攻击代码,当系统管理员查看投诉信息时恶意代码执行,窃取了客户的资料,然而管理员毫不知情,这就是典型的XSS存储型攻击。
+解决方法
在表单提交或者url参数传递前,对需要的参数进行过滤
过滤用户输入。检查用户输入的内容中是否有非法内容。如<>(尖括号)、”(引号)、 ‘(单引号)、%(百分比符号)、;(分号)、()(括号)、&(& 符号)、+(加号)等

RPC与HTTP服务的区别