php 安全检测


        // 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 代码,可能存在远程代码执行风险");
        }

posted @ 2025-03-14 10:04  窦戈  阅读(23)  评论(0)    收藏  举报