一、弱口令
产生原因
弱口令的产生主要与用户的安全意识薄弱及个人使用习惯有关。为了便于记忆,用户往往设置简单的密码,或者直接使用系统默认的初始密码。
危害
攻击者利用弱口令可以轻松进入后台管理系统修改资料,侵入金融系统盗取资金,访问 OA 系统获取企业内部机密文件,甚至控制监控系统进行实时监控,造成严重的数据泄露和财产损失。
防御建议
设置强密码应遵循以下原则:
- 不使用空口令或系统默认口令。
- 密码长度不小于 8 个字符,建议 12 位以上。
- 避免使用连续字符(如 AAAAAAAA)或重复组合(如 tzf.tzf)。
- 密码应由大写字母、小写字母、数字和特殊字符四类中的至少三类混合组成。
- 不包含个人敏感信息,如姓名、生日、手机号、邮箱等。
- 避免使用字典单词或简单的键盘序列。
- 定期更换密码,建议每 90 天更新一次。
二、SQL 注入
产生原因
当 Web 应用向数据库传递 SQL 语句时,如果未对用户输入的参数进行严格过滤或转义,攻击者可以构造特殊的 SQL 语句,将其作为代码执行。
本质
将用户输入的数据当作可执行的代码来处理,违背了'数据与代码分离'的安全原则。
关键点
- 用户能够控制输入的内容。
- Web 应用将用户输入的内容直接带入数据库执行。
危害
- 盗取网站敏感信息(如用户表、配置表)。
- 绕过后台认证登录。
- 提权获取服务器系统权限。
- 读取或修改数据库文件。
防御措施
- 预编译语句:使用 PreparedStatement 绑定变量,确保参数不会被解析为 SQL 命令。
String sql = "SELECT * FROM user WHERE id = ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, userId); - 输入过滤:使用正则表达式过滤特殊字符(如
select,union,drop等)。 - 最小权限原则:数据库连接账号仅授予必要的操作权限。
三、文件上传漏洞
原理
若服务端未对上传文件的类型、内容或后缀名进行严格验证,攻击者可上传恶意脚本文件(如 .php, .jsp, .sh),从而在服务器上执行任意代码。
成因
- 服务器配置错误,允许脚本目录执行。
- 前端校验被绕过。
- 后端白名单/黑名单过滤不严。
危害
- 上传 Webshell 获取服务器控制权(GetShell)。
- 篡改网站页面内容。
- 窃取服务器敏感数据。


