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安全, 反爬虫, 机器人检测, 流量伪装, 用户代理检测, 网络安全, 蓝队分析, 请求处理, 身份识别, 过滤机制, 链式调用, 隐私保护