cloakings/cloakings-common

GitHub: cloakings/cloakings-common

这是一个PHP流量伪装公共库,帮助检测用户是机器人还是真实用户。

Stars: 3 | Forks: 2

# Cloakings 公共库 检测用户是机器人还是真实用户。 ## 安装 ``` composer require cloakings/cloakings-common ``` ## 使用方法 ### 基本用法 如果存在满足您需求且实现了 `CloakerInterface` 的库,请直接使用。 ``` use Cloakings\CloakingsCommon\CloakerFactory; use Cloakings\CloakingsCommon\CloakModeEnum; use Cloakings\CloakingsCommon\SampleCloaker; $cloaker = new SampleCloaker(); // or $cloaker = (new CloakerFactory())->create(SampleCloaker::class); $result = $cloaker->handle(new Request(server: ['HTTP_USER_AGENT' => 'Chrome 100'])); // $result->mode === CloakModeEnum::Real // show real site $result = $cloaker->handle(new Request(server: ['HTTP_USER_AGENT' => 'GoogleBot', 'REMOTE_ADDR' => '8.8.8.8'])); // $result->mode === CloakModeEnum::Fake // show fake site $result = $cloaker->handle(new Request(server: ['HTTP_USER_AGENT' => 'GoogleBot', 'REMOTE_ADDR' => '11.22.33.44'])); // $result->mode === CloakModeEnum::Response // stop and show this response $result = $cloaker->handle(new Request()); // no user agent // $result->mode === CloakModeEnum::Error // decide by yourself: may be show default (fake or real) site, may be try chaining decision to another cloaker ``` ### 链式调用 如果希望访问者通过多个伪装检测器,则可以使用 `ChainCloaker`。 ``` use Cloakings\CloakingsCommon\AlwaysRealCloaker; use Cloakings\CloakingsCommon\CloakerFactory; use Cloakings\CloakingsCommon\SampleCloaker; $cloaker = (new CloakerFactory())->createChain([ AlwaysRealCloaker::class, SampleCloaker::class, ]); ``` 逻辑如下: - 如果某个伪装检测器返回 “Fake” — 立即停止并返回 “Fake” - 如果某个伪装检测器返回 “Response” — 立即停止并返回 “Response” - 如果某个伪装检测器返回 “Real” — 继续执行下一个伪装检测器;最终返回最后一个 “Real” 响应 - 如果某个伪装检测器返回 “Error” — 继续执行下一个伪装检测器;最终返回最后一个 “Real” 响应;如果所有伪装检测器都返回 “Error”,则返回最后一个 “Error” ## 创建自己的伪装检测器 实现 `CloakerInterface` 接口。 返回 `mode`: - “Real”:访问者似乎是真实人类用户 - “Fake”:访问者似乎是机器人用户 - “Response”:不显示真实或虚假站点,而是返回此响应:通常用于需要额外检查的临时页面,如验证码或 JS 挑战 - “Error”:无法判断 返回 `response`:仅在模式为 “Response” 或 “Error” 时使用。 返回 `probability`:您对此判断的置信度,取值范围为 `0.0 - 1.0`。当您拥有多个伪装检测器,且其中一个返回 “Real” 而另一个返回 “Fake” 时,这非常有用。通常情况下,保持默认值 `1.0` 即可。
标签:Composer, ffuf, HTTP协议, IP地址检查, LSASS转储, OpenVAS, PHP, SEO优化, Web安全, 反爬虫, 机器人检测, 流量伪装, 用户代理检测, 网络安全, 蓝队分析, 请求处理, 身份识别, 过滤机制, 链式调用, 隐私保护