1.防范常见的web攻击
1.1sql注入
预编译
严格区分普通账户和管理员账户的权限
控制数据类型
特殊字符做转义,即输入过滤
1.2 xss
https://www.cnblogs.com/meituantech/p/9718677.html
1.对输入和url参数过滤,过滤输入字符
2.对输出做编码
3.输入内容长度做限制
4.http-only cookie:禁止JS读取cookie
5.CSP
1.3 文件上传
https://blog.csdn.net/qq_33181292/article/details/120296254
https://blog.csdn.net/m0_38103658/article/details/100162185
开发文件上传功能的时候,并未考虑文件后缀的合法性校验。
防御:
1.上传的目录设置为不可执行
2.判断文件类型:后缀检查,mime检查,白名单过滤
3.使用随机数改写文件名和文件路径
4.安全设备防御
1.4 代码执行
1.尽量不要使用命令执行函数
2.不要让用户控制参数
3.执行前做好检测和过滤
2.重要协议分布层
https://cloud.tencent.com/developer/article/1979705
https://blog.csdn.net/wwy0324/article/details/109310658
应用层:HTTP,FTP,DNS
传输层:UDP,TCP
网络层:ICMP,IP
数据链路层:ARP,RARP
3.arp协议工作原理
地址解析协议:根据IP获取到mac地址的一个协议
(1)每台主机都会在自己的ARP缓冲区建立一个ARP列表,以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包发送到目的主机时,会先检查自己的ARP列表中是否存在该IP地址对应的MAC地址,如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址,硬件地址,以及目的主机的IP地址。
(2)网络中所有主机收到这个ARP请求之后,会检查数据包中的目的IP是否和自己的IP地址一致,如果不一致就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP列表中已经存在该IP的信息,则将其覆盖,,然后将自己的 MAC 地址写入 ARP 响应数据包中发送给源主机,告诉源主机自己是它想要找的 MAC 地址。给源主机发送一个ARP响应数据包(目标机器会更新源主机对应关系并发送给源主机自己的ip和mac地址)
(3)源主机收到这个ARP响应数据包之后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
4.rip协议是什么?rip协议工作原理?
rip(路由信息协议,Routing Information Protocol),是一种基于距离矢量的内部网关协议,即根据跳数来度量路由开销,进行路由选择。
RIP协议实现更简单,对带宽、配置和管理等要求也更低,但受到路由跳数和收敛速度的限制,跳数大于15就认为网络不可达,所以无法用在大型复杂网络中。
工作原理:
简单来说,就是和相邻路由器交换信息,交换的是自己的路由表,按照固定的时间间隔来交换,一般是30s
https://cloud.tencent.com/developer/article/2147357
5.什么是rarp?工作原理
反向地址解析协议。获得当前mac地址所进行通信的IP地址
(1)网络上的每台设备都会有一个独一无二的硬件地址,通常是由设备厂商分配的MAC地址。主机从网卡上读取MAC地址,然后在网络上发送一个RARP请求的广播数据包,请求RARP服务器回复该主机的IP地址。
(2)RARP服务器收到了RARP请求数据包,为其分配IP地址,并将RARP回应发送给主机。
(3)PC1收到RARP回应后,就使用得到的IP地址进行通讯。
6.OSPF 协议?OSPF的工作原理
OSPF(最短路径优先协议):
OSPF协议使用Dijkstra算法来计算路由表,并广播链路状态信息(LSA)到整个网络中的其他所有路由器。**每个路由器都维护一个完整的拓扑图,并根据这个拓扑图进行最短路径计算,然后将结果记录在路由表中。**当网络拓扑发生变化时,路由器会向周围节点发送特定类型的消息以通知它们拓扑结构的变化,这样每个节点都可以更新自己的拓扑图。
7.TCP与UDP区别总结
https://blog.csdn.net/weixin_43796685/article/details/104558965
TCP是面向连接的,UDP是无连接的
TCP是可靠的,UDP是不可靠的
TCP是面向字节流的,UDP是面向数据报文的
TCP只支持点对点通信,UDP支持一对一,一对多,多对多
TCP报文首部20个字节,UDP首部8个字节
TCP有拥塞控制机制,UDP没有
TCP协议下双方发送接受缓冲区都有,UDP并无实际意义上的发送缓冲区,但是存在接受缓冲区
8.什么是三次握手四次挥手?
https://blog.csdn.net/m0_56649557/article/details/119492899
9.tcp 为什么要三次握手?
https://blog.csdn.net/lengxiao1993/article/details/82771768
10.dns 是什么?dns 的工作原理
DNS(Domain Name System):把主机名和域名转换为IP
DNS工作原理:
11.OSI 的七层模型都有哪些?
1.物理层
2.数据链路层
3.网络层
4.传输层
5.会话层
6.表示层
7.应用层
12.一次完整的 HTTP 请求过程
13.Cookies 和 session 区别
cookie是存放在用户的浏览器上
session是存放在服务器上,session会在一定时间内存储在服务器上,当访问增多,会对服务器性能造成损伤
cookie安全性不如session
14.GET 和 POST 的区别
get是把参数放在URL中,post是通过请求体传递参数
POST方法比GET方法更安全,因为数据在地址栏不可见
https://blog.csdn.net/qq_43588129/article/details/115218995
15.HTTPS 和 HTTP 的区别
https://www.runoob.com/w3cnote/http-vs-https.html
HTTP(超文本传输协议):
1.明文传输,数据不加密,安全性较差
2.HTTP页面响应速度比HTTPS快
3.端口号80
HTTPS(超文本传输安全协议):
1.HTTPS(SSL+HTTP):数据传输过程是加密的,安全性较好
2.使用HTTPS需要到CA申请证书
3.端口号443
4.HTTPS是建构在SSL/TLS之上的HTTP协议,所以HTTPS比HTTP更耗费服务器资源
16.session 的工作原理?
https://www.cnblogs.com/jxxblogs/p/12071196.html
1.用户第一次请求服务器时,服务器端会生成一个sessionid
2.服务器端将生成的sessionid返回给客户端,通过set-cookie
3.客户端收到sessionid会将它保存在cookie中,当客户端再次访问服务端时会带上这个sessionid
4.当服务端再次接收到来自客户端的请求时,会先去检查是否存在sessionid,不存在就新建一个sessionid重复1,2的流程,如果存在就去遍历服务端的session文件,找到与这个sessionid相对应的文件,文件中的键值便是sessionid,值为当前用户的一些信息
此后的请求都会交换这个 Session ID,进行有状态的会话。
17.http 长连接和短连接的区别
长连接:客户端与服务端先建立连接,连接建立后不断开,然后再进行报文发送和接收。这种方式下由于通讯连接一直存在。
短连接:客户端与服务端每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此方式常用于一点对多点通讯。
18.session 的工作原理?什么是 TCP 粘包/拆包?发生原因?解决方案
19.TCP 如何保证可靠传输?
https://blog.csdn.net/sansipi/article/details/121459589
20.URI 和 URL 的区别
https://blog.csdn.net/sinat_38719275/article/details/102607458
URL(统一资源定位符):网站地址
URI(统一资源标识符):用于标识某一段互联网资源名称
URI是包含URL的
21.什么是 SSL ?
https://zhuanlan.zhihu.com/p/138910031
22.https 是如何保证数据传输的安全(SSL 是怎么工作保证安全的)
https://www.runoob.com/w3cnote/https-ssl-intro.html
23.TCP 对应的应用层协议,UDP 对应的应用层协议
https://blog.csdn.net/boyaaboy/article/details/102566522
TCP:HTTP,FTP,SSH
UDP:DNS
24.常见的状态码有哪些?
https://www.cnblogs.com/easonscx/p/12630247.html