面试题答案
一键面试TCP/IP协议栈四层结构交互机制
- 应用层:
- 应用层负责处理特定的应用程序协议,如HTTP、SMTP、FTP等。它将用户数据格式化,以适合网络传输。例如,HTTP协议将网页请求和响应进行封装。应用层数据被传递给传输层。
- 传输层:
- 传输层主要有TCP和UDP两种协议。对于TCP,它会为应用层数据加上TCP首部,包括源端口、目的端口、序列号、确认号等字段,提供可靠的面向连接的传输服务。UDP则相对简单,只添加源端口和目的端口,提供无连接的不可靠传输。传输层将封装后的数据段传递给网络层。
- 网络层:
- 网络层使用IP协议,为传输层传来的数据段加上IP首部,包含源IP地址、目的IP地址等信息。它负责将数据包从源主机路由到目的主机,根据路由表选择最佳路径。网络层将封装后的数据包传递给数据链路层。
- 数据链路层:
- 数据链路层将网络层传来的数据包加上链路层首部和尾部(如以太网的MAC地址等),形成帧。它负责在相邻节点之间传输帧,处理物理寻址和错误检测。数据链路层将帧传递给物理层进行物理介质上的传输。物理层负责将帧转换为电信号或光信号等在物理介质上传播。
每层可能存在的安全漏洞及防范措施
- 应用层:
- 安全漏洞:
- SQL注入:攻击者通过在应用程序输入字段中注入恶意SQL语句,以获取或篡改数据库数据。例如在登录框中输入恶意SQL语句,绕过认证。
- 跨站脚本攻击(XSS):攻击者将恶意脚本注入到网页中,当用户浏览该网页时,脚本会在用户浏览器上执行,可能窃取用户会话信息等。
- 防范措施:
- 针对SQL注入:使用参数化查询,避免直接拼接SQL语句;对用户输入进行严格的过滤和验证,限制输入字符集。
- 针对XSS:对用户输入进行HTML实体编码,过滤掉脚本标签;设置HTTP Only Cookie,防止Cookie被JavaScript获取。
- 安全漏洞:
- 传输层:
- 安全漏洞:
- TCP SYN Flood攻击:攻击者发送大量伪造源IP地址的TCP SYN包,服务器为每个连接分配资源并等待回应,但由于源IP是伪造的,无法收到回应,导致服务器资源耗尽,无法处理正常请求。
- UDP Flood攻击:攻击者向目标主机发送大量UDP数据包,耗尽网络带宽,导致正常服务无法进行。
- 防范措施:
- 针对TCP SYN Flood攻击:启用SYN Cookie机制,在收到SYN包时不分配资源,而是根据源IP、端口等信息生成一个Cookie,在收到ACK包时验证Cookie;设置合理的TCP连接超时时间,及时清理无效连接。
- 针对UDP Flood攻击:采用流量清洗设备,识别并丢弃异常的UDP流量;限制UDP连接速率。
- 安全漏洞:
- 网络层:
- 安全漏洞:
- IP地址欺骗:攻击者伪造源IP地址,使数据包看起来来自合法主机,以绕过访问控制等安全机制。
- ICMP重定向攻击:攻击者发送虚假的ICMP重定向消息,误导主机的路由表,使数据包流向攻击者指定的路径,可能导致信息泄露或中间人攻击。
- 防范措施:
- 针对IP地址欺骗:使用源IP地址验证机制,如反向路径转发(RPF),检查数据包的源IP是否可通过入站接口反向路由回源;配置防火墙,禁止外部网络伪造内部源IP的数据包进入。
- 针对ICMP重定向攻击:在路由器上配置,禁止接收或转发ICMP重定向消息;对ICMP流量进行严格的访问控制。
- 安全漏洞:
- 数据链路层:
- 安全漏洞:
- ARP欺骗:攻击者伪造ARP响应包,将目标主机的IP地址映射到自己的MAC地址,导致网络中的其他主机将数据发送给攻击者,从而实现中间人攻击。
- 防范措施:
- 针对ARP欺骗:采用ARP静态绑定,手动设置IP地址和MAC地址的对应关系,防止ARP表被篡改;使用ARP防护软件,检测并阻止异常的ARP响应包。
- 安全漏洞: