🔒 安全风险扫描报告

2
高危风险
2
中危风险
4
总风险数

🔴 SQL注入风险

SQL注入攻击者通过在用户输入中注入恶意SQL代码,改变原始查询的逻辑结构,从而非法访问或操作数据库。

文件: d:\tecosmos\login.php
行号: 46-47
🔴 高危

描述: SQL查询直接拼接用户输入

风险代码:

$sql="select id,username,password from username where username='$name' AND password='$pwd';";
🎯 攻击向量:
输入: ' OR '1'='1' --
结果: SELECT * FROM username WHERE username='' OR '1'='1' --' AND password=''
✅ 修复建议: 使用预处理语句或参数化查询
文件: d:\tecosmos\send_mail.php
行号: 12-15
🔴 高危

描述: 将用户输入拼接到系统命令

风险代码:

$command = "python send_email.py -s $sender -r $receiver --subject \"$subject\" --body \"$body\"";
🎯 攻击向量:
输入: subject'; cat /etc/passwd; echo '
结果: 执行系统命令读取敏感文件
✅ 修复建议: 使用escapeshellarg()过滤参数,或使用API代替系统命令

🟠 XSS跨站脚本风险

XSS攻击者通过在网页中注入恶意脚本代码,当用户浏览该页面时,恶意脚本会在用户的浏览器中执行,从而窃取用户的敏感信息。

文件: d:\tecosmos\login.php
行号: 73
🟠 中危

描述: 直接输出Cookie值到HTML

风险代码:

echo $_COOKIE['username'];
🎯 攻击向量:
设置Cookie: <script>alert('XSS')</script>
结果: 当其他用户访问时执行恶意脚本
✅ 修复建议: 使用htmlspecialchars()进行HTML编码
文件: d:\tecosmos\login.php
行号: 79
🟠 中危

描述: 直接输出Cookie值到HTML

风险代码:

echo $_COOKIE['password'];
🎯 攻击向量:
设置Cookie: <img src=x onerror=alert(document.cookie)>
结果: 窃取用户会话Cookie
✅ 修复建议: 使用htmlspecialchars()进行HTML编码

🔴 链接注入风险

链接注入攻击者利用应用程序未对用户输入的URL进行严格验证的漏洞,将恶意链接注入到页面中,可能导致钓鱼攻击或恶意软件传播。

文件: d:\tecosmos\login.php
行号: 31-32
🔴 高危

描述: 使用用户输入进行页面重定向

风险代码:

if (isset($_GET['link']) && !empty($_GET['link'])) { header("location:" . $_GET['link']); }
🎯 攻击向量:
访问: login.php?link=http://evil.com/phishing.html
结果: 用户被重定向到恶意网站
✅ 修复建议: 验证URL是否以/开头,或使用白名单域名

📋 风险汇总表

风险类型 文件 行号 风险等级 描述
SQL注入 login.php 46-47 🔴 高危 SQL查询直接拼接用户输入
SQL注入 send_mail.php 12-15 🔴 高危 将用户输入拼接到系统命令
XSS login.php 73 🟠 中危 直接输出Cookie值到HTML
XSS login.php 79 🟠 中危 直接输出Cookie值到HTML
链接注入 login.php 31-32 🔴 高危 使用用户输入进行页面重定向

📖 安全防护建议

  1. SQL注入防护: 始终使用参数化查询(预处理语句)进行数据库操作,禁止直接拼接SQL语句
  2. XSS防护: 在输出用户可控数据到HTML时,必须使用htmlspecialchars()进行HTML编码
  3. 链接注入防护: 重定向或构建URL时,验证目标地址是否在允许的域名范围内
  4. 命令注入防护: 避免将用户输入拼接到系统命令中,如必须使用,应使用escapeshellarg()过滤
  5. 安全编码规范: 建立代码审查机制,确保所有用户输入都经过适当的验证和清理

⚠️ 重要提醒