// 1. 检查是否为空
if (empty($data)) {
return Result::Error(1, "API 返回数据为空");
}
// 2. 检查是否是 JSON 格式(简单判断)
if (!preg_match('/^\{.*\}$/s', trim($data))) {
return Result::Error(1, "API 返回的不是合法的 JSON 格式");
}
// 3. 检查是否包含 XSS 攻击代码
if (preg_match('/<script|onerror|onload|eval\(|base64_decode|document\.cookie|document\.write/i', $data)) {
return Result::Error(1, "检测到 XSS 代码,拒绝处理");
}
// 4. 检查是否包含 SQL 关键词(防 SQL 注入)
$blacklist = ['SELECT ', 'UNION ', 'INSERT ', 'DELETE ', 'UPDATE ', 'DROP ', '--', '#', '/*', '*/'];
foreach ($blacklist as $word) {
if (stripos($data, $word) !== false) {
return Result::Error(1, "检测到 SQL 关键词,数据不安全");
}
}
// 5. 检查是否包含 PHP 代码(防止 RCE)
if (stripos($data, '<?php') !== false || stripos($data, 'system(') !== false) {
return Result::Error(1, "检测到 PHP 代码,可能存在远程代码执行风险");
}