防范常见的 Web 攻击
什么是 SQL 注入攻击
SQL 注入是指攻击者在 HTTP 请求中注入恶意的 SQL 代码,服务器在构建数据库查询命令时未做过滤,导致恶意 SQL 被构造并执行。
本文详细梳理了网络安全领域的核心面试题,涵盖 Web 攻击防御(SQL 注入、XSS、CSRF、文件上传)、网络协议原理(ARP、DNS、RIP、OSPF)、传输层机制(TCP/UDP 区别、三次握手、粘包处理)以及安全模型(OSI 七层、SSL/TLS 加密流程)。内容针对技术面试场景进行了结构化整理,重点解释了攻击原理、防范措施及协议交互细节,适合后端开发与安全岗位求职者复习参考。

SQL 注入是指攻击者在 HTTP 请求中注入恶意的 SQL 代码,服务器在构建数据库查询命令时未做过滤,导致恶意 SQL 被构造并执行。
示例:
用户登录时输入用户名 lianggzone,密码 ' or '1'='1。若后端使用字符串拼接方式构建 SQL:
select * from user where name = 'lianggzone' and password = '' or '1'='1'
这将绕过验证,使查询结果不为空。
防范措施:
PreparedStatement。跨站脚本攻击(Cross-Site Scripting),指攻击者篡改网页嵌入恶意脚本,在用户浏览时控制浏览器执行恶意操作。
防范措施:
<, >, &, ", ' 等特殊字符编码。跨站请求伪造(Cross-Site Request Forgery),指攻击者利用受害者的身份向第三方网站发送恶意请求。
常见后果:
防范措施:
文件上传漏洞指攻击者上传可执行脚本文件,从而获得服务端命令执行权限。
防范措施:
分布式拒绝服务攻击,客户端向服务端发送请求包但不回复确认,导致服务端资源耗尽。
预防策略:
地址解析协议(ARP)用于根据 IP 地址获取物理地址(MAC 地址)。
工作流程:
免费 ARP: 新加入网络的主机广播自己的 IP-MAC 映射,其他主机更新本地 ARP 表,用于检测 IP 冲突。
反向地址转换协议,使只知道硬件地址(MAC)的主机获取 IP 地址。原理与 ARP 相反,通过广播请求 RARP 服务器返回 IP。
域名系统,将域名转换为 IP 地址,属于应用层协议,通常使用 UDP 传输。
解析过程:
总结: 浏览器缓存 -> 系统缓存 -> 路由器缓存 -> LDNS -> 根域名服务器 -> 顶级域名服务器 -> 主域名服务器。
路由信息协议(RIP),基于距离矢量算法,使用跳数(Hop Count)作为度量,最大跳数为 15。
收敛机制:
缺点: 仅适用于小规模网络,收敛慢,非最优路径选择。
开放最短路径优先协议,链路状态协议,支持大规模网络。
原理:
| 特性 | TCP | UDP |
|---|---|---|
| 连接性 | 面向连接 | 无连接 |
| 可靠性 | 可靠交付 | 尽最大努力交付 |
| 速度 | 较慢(有握手开销) | 较快 |
| 首部开销 | 20 字节 | 8 字节 |
| 通信方式 | 一对一 | 一对一、多对多 |
| 数据单元 | 字节流 | 报文 |
三次握手:
四次挥手:
原因: 应用程序写入数据大于缓冲区、MSS 分段、MTU 分片。 解决方案:
HTTPS = HTTP + SSL/TLS。
加密机制:
工作流程:
证书防伪: 通过 CA 私钥对摘要(Hash)加密生成数字签名。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online