[QA]待学知识点
先占个坑
1.CSRF
什么是CSRF攻击:跨站请求伪造,伪装成来自受信任用户的请求来利用受信任的网站
检测CSRF漏洞:抓一个包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。
避免CSRF攻击的方法:1⃣️使用post传递数据,尽量不要使用get2⃣️设置cookie为HttpOnly(这样就不能通过客户端脚本访问了)3⃣️增加token(由服务端返回一个随机数添加到HTTP请求中,并在服务端建立一个拦截器校验这个token)4⃣️通过Referer识别(Referer记录的是该HTTP请求的来源地址)
2.性能相关
响应时间:从发出请求到客户端接收到所有数据的时间
并发用户数:同一时刻与服务器进行数据交互的所有用户数量
吞吐量:单位时间内服务器处理的字节数,B/s
吞吐率:单位时间内服务器处理客户提交的请求数。吞吐率=吞吐量/测试时间
TPS:服务器每秒处理的事务数
点击率:每秒钟用户向服务器提交的HTTP数量(点击一次不代表客户端只向服务器端发送一个HTTP请求)
资源利用率:资源实际使用量/总的可用资源量
响应时间和吞吐量的关系:平均响应时间越短,系统吞吐量越大;平均响应时间越长,系统吞吐量越小。
负载测试:对被测系统不断地加压,直到超过预定的指标或者部分资源已经达到了一种饱和状态不能再加压为止。
压力测试:指系统已经达到一定的饱和程度(如CPU、内存或磁盘等已经处于饱和状态),此时系统处理业务的能力,是否会出错。
并发:1⃣️所有用户在同一时刻做同一种操作,主要是为了验证程序或数据库对并发的处理能力。2⃣️多个用户对被测系统发起了多个请求,这些请求可以是同一种操作,也可以是不同的操作,类似于混合场景。
并发用户数的设置只是保证服务器在任一时刻都有相应数量的请求需要处理,而并不一定是保证每秒中发送相应数量的请求给服务器
3.ARP协议
4.ICMP协议
5.Junit
6.SYN攻击
是什么?
在TCP三次握手阶段,server收到client的建立连接的请求,会向client发送一个同意建立请求的确认报文,并进入SYN_RECV状态,而SYN攻击就发生在这个阶段,服务器维护一个未连接队列,表明服务器已收到SYN包,并向client发出确认,正在等待client的确认包,只有当server收到client的确认包时,删除该条目,才进入ESTABLISHED阶段。SYN攻击就是利用TCP协议的缺陷,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。
怎么检测?
当Server上有大量半连接状态且源IP地址是随机的,则可以断定遭到SYN攻击了,使用如下命令查看:netstat | grep SYN_RECV
7.哈夫曼编码
8.路由转发
9.android触发GC回收的条件
10.ip地址重的私有地址和保留地址
11.数据结构:图
12.TDD
13.测试桩