支持WordPress的cloak斗篷插件

shoplinks首创针对WordPress独立站开放的ABCloak 斗篷API,智能广告保护与流量管理接口​​,功能强大、高效可靠,为广告投放提供全链路防护与策略优化。通过动态流量识别与精准内容分发,助您在合规框架下最大化广告效益。

定向内容展示引擎​​
基于实时请求头解析(IP/地理定位/设备指纹等),自动区分广告审核机器人、爬虫与真实用户群体

多维度反爬虫防御​​
深度识别并拦截搜索引擎爬虫、广告库爬取、律所取证等恶意访问

实时流量检测与策略调控​
多策略检测引擎同步执行用户代理验证、行为分析,自定义访问结果缓存时长第一步配置相关方案

使用场景

  • 1 支持基于国家、设备、流量来源等动态规则
  • 2 支持B站绑定多个A站
  • 3 可设置访问结果缓存时长
  • 4 实时解析请求头​​实现动态流量分流
  • 5 内置屏蔽库爬虫精准识别​​
  • 1 仅用于提升广告过审率,无法完全规避账号封禁风险(如商品本身违反平台政策)
  • 2 避免用于侵权商品,需符合目标市场知识产权法规
  • 3 频繁切换内容或大规模站群操作可能触发广告平台风控
支持WordPress的cloak斗篷插件
支持WordPress的cloak斗篷插件

接入方式

启用方式:引入下载文件

复制以下代码,在入口文件 index.php 引入 openabcloak.php

// 在加载WordPress前执行
if (!defined(‘WP_ADMIN’)) {
require __DIR__ . ‘/openabcloak.php’;
}

需要下载 openabcloak.php 文件并将 openabcloak.php 放在 wordpress 根目录下,代码如下


	<?php
	/**
	 * OpenABCloak 跳转控制器
	 * 功能:检查Cookie或请求API,决定是否跳转
	 * 位置:WordPress根目录
	 */
		
	// 配置项(需修改为您的实际值)
	const OPENABCLOAK_API_URL = ''; //请求API地址
	const OPENABCLOAK_TOKEN   = '';   //Token
	const OPENABCLOAK_ID      = ''; //方案ID
	const OPENABCLOAK_COOKIE_NAME = 'openabcloak';
		
	/*
	 * 注:如无其他需求,请勿修改以下代码
	 */
		
	// 防止直接访问时暴露信息
	if (!isset($_SERVER['HTTP_HOST'])) {
	    exit('Invalid access');
	}
		
	// 1. 跳过后台/WP-CLI等特殊请求
	if (defined('WP_ADMIN') || php_sapi_name() === 'cli') {
	    return;
	}
		
	$params = [
	    'token'   => OPENABCLOAK_TOKEN,
	    'id'      => OPENABCLOAK_ID,
	    'ip'      => getClientIP(),
	    'header'  => array_change_key_case(getallheaders(), CASE_LOWER),
	    'page'    => getCurrentUrl()
	];
		
	// Skip favicon and other static files
	$staticFiles = ['favicon.ico', 'robots.txt', '.well-known/', 'wc-ajax'];
	foreach ($staticFiles as $file) {
	    if (strpos($params['page'], $file) !== false) {
	        return;
	    }
	}
		
	// 2. 检查有效Cookie
	if (isset($_COOKIE[OPENABCLOAK_COOKIE_NAME])) {
	    $cookieData = json_decode($_COOKIE[OPENABCLOAK_COOKIE_NAME], true);
		
	    if (!empty($cookieData['verify_status']) && !empty($cookieData['jump_domain'])) {
	        doRedirect($cookieData['jump_domain'], $params);
	    }
	    // 有cookie时,直接返回,不再请求API
	    return;
	}
		
	// 3. 无Cookie时请求API
	$response = makeApiRequest(OPENABCLOAK_API_URL, $params);
		
	if ($response && $response['code'] === 0) {
	    $data = $response['data'];
		
	    // 设置安全Cookie
	    setcookie(
	        OPENABCLOAK_COOKIE_NAME,
	        json_encode($data, JSON_UNESCAPED_UNICODE),
	        time() + ($data['cache_time'] ?? 3600),
	        '/',
	        '',
	        false,  // 仅HTTPS
	        true    // HttpOnly
	    );
		
	    if (!empty($data['verify_status']) && !empty($data['jump_domain'])) {
	        doRedirect($data['jump_domain'], $params);
	    }
	}
		
	// 4. 辅助函数
	function getCurrentUrl(): string {
	    return (isset($_SERVER['HTTPS']) ? 'https://' : 'http://') .
	        $_SERVER['HTTP_HOST'] .
	        $_SERVER['REQUEST_URI'];
	}
		
	function makeApiRequest(string $url, array $params): ?array {
	    $ch = curl_init();
	    curl_setopt_array($ch, [
	        CURLOPT_URL            => $url,
	        CURLOPT_POST           => true,
	        CURLOPT_POSTFIELDS     => json_encode($params),
	        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
	        CURLOPT_RETURNTRANSFER => true,
	        CURLOPT_SSL_VERIFYPEER => false,
	        CURLOPT_SSL_VERIFYHOST => false,
	        CURLOPT_TIMEOUT        => 5,// 超时时间优化为5秒
	        CURLOPT_CONNECTTIMEOUT => 3,// 连接超时优化为3秒
	    ]);
		
	    $response = curl_exec($ch);
	    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
	    curl_close($ch);
		
	    return ($httpCode === 200) ? json_decode($response, true) : null;
	}
		
	function doRedirect(string $jumpDomain, array $params): void {
	    $queryString = parse_url($params['page'], PHP_URL_QUERY);
	    $path = parse_url($params['page'], PHP_URL_PATH) ?: '/';
	    $url = $jumpDomain . $path . ($queryString ? '?' . $queryString : '');
	    // 强制清除所有输出缓冲
	    while (ob_get_level()) {
	        ob_end_clean();
	    }
	    header("Location: $url", true, 302);
	    exit;
	}
		
	function getClientIP(): string {
	    $ipHeaders = [
	        'HTTP_CF_CONNECTING_IP',    // Cloudflare
	        'HTTP_X_FORWARDED_FOR',     // 通用代理
	        'HTTP_X_REAL_IP',           // Nginx等
	        'HTTP_X_GT_CLIENTIP',       // 特定CDN
	        'HTTP_CLIENT_IP'            // 较少使用
	    ];
		
	    foreach ($ipHeaders as $header) {
	        if (!empty($_SERVER[$header])) {
	            $ip = trim(explode(',', $_SERVER[$header])[0]);
	            if (filter_var($ip, FILTER_VALIDATE_IP)) {
	                return $ip;
	            }
	        }
	    }
		
	    return $_SERVER['REMOTE_ADDR'] ?? '';
	}

创建完可以进行测试是否进行了跳转。

需要使用这个外接cloak需要购买shoplinks套餐作为跳转站用和购买ABcloak插件。

注册shoplinks链接 点击https://account.shoplinks.cn/

原创文章,作者:小稣童,如若转载,请注明出处:https://www.snswhy.com/archives/5886.html

(0)
上一篇 2025年6月5日 下午1:56
下一篇 2025年7月30日 下午2:37

相关推荐

发表回复

登录后才能评论