当前位置: 首页 > news >正文

Hyperf方案 设备指纹识别

设备指纹有两种方案,取决于你的场景: b ┌───────────────────────────────────┬───────┬────────────────┐ │ 方案 │ 精度 │ 场景 │ ├───────────────────────────────────┼───────┼────────────────┤ ────────────────────────────── │ FingerprintJS Pro(客户端+服务端)99.5% │ 反欺诈、风控 │ ├───────────────────────────────────┼───────┼────────────────┤ │ DeviceDetector(纯服务端 UA 解析)│ 中等 │ 设备分类、统计 │ └───────────────────────────────────┴───────┴────────────────┘ --- 方案一:FingerprintJS Pro(推荐,高精度风控) 客户端采集 → 服务端验证,精度最高。composerrequire fingerprintjs/fingerprint-pro-server-api-php-sdk 前端(一行引入):<scriptsrc="https://fpjscdn.net/v3/YOUR_PUBLIC_KEY/iife.min.js"></script><script>FingerprintJS.load().then(fp=>fp.get()).then(r=>{// 将 r.visitorId 和 r.requestId 发给后端 fetch('/api/verify',{method:'POST', body: JSON.stringify(r)});});</script>Hyperf 服务端验证:<?php namespace App\Controller;use Fingerprint\ServerAPI\Api\FingerprintApi;use Fingerprint\ServerAPI\Configuration;use GuzzleHttp\Client;use Hyperf\HttpServer\Annotation\Controller;use Hyperf\HttpServer\Annotation\PostMapping;#[Controller(prefix: '/api')]class FingerprintController{private FingerprintApi$client;publicfunction__construct(){$config=Configuration::getDefaultConfiguration(env('FINGERPRINT_SECRET_KEY'));$this->client=new FingerprintApi(new Client(),$config);}#[PostMapping(path: 'verify')]publicfunctionverify(): array{$requestId=$this->request->input('requestId');[$event,$error]=$this->client->getEvent($requestId);if($error){return['risk'=>true];}$identification=$event->getProducts()->getIdentification()->getData();return['visitorId'=>$identification->getVisitorId(),'confidence'=>$identification->getConfidence()->getScore(),'incognito'=>$identification->getIncognito(),'ip'=>$identification->getIp(),];}}--- 方案二:DeviceDetector(纯服务端,免费) 适合设备分类、UA 解析,无需客户端 JS。composerrequire matomo/device-detector 封装为 Hyperf Service:<?php namespace App\Service;use DeviceDetector\DeviceDetector;use DeviceDetector\Cache\PSR6Bridge;use Psr\SimpleCache\CacheInterface;class DeviceFingerprintService{publicfunction__construct(private CacheInterface$cache){}publicfunctiondetect(string$userAgent): array{$dd=new DeviceDetector($userAgent);$dd->setCache(new PSR6Bridge($this->cache));$dd->parse();return['fingerprint'=>md5($userAgent.request()->ip()),'device_type'=>$dd->getDeviceName(), // desktop/tablet/smartphone'brand'=>$dd->getBrandName(),'model'=>$dd->getModel(),'os'=>$dd->getOs('name'),'browser'=>$dd->getClient('name'),'is_bot'=>$dd->isBot(),];}}控制器调用:#[GetMapping(path: 'device')]publicfunctiondevice(): array{return$this->deviceService->detect($this->request->header('User-Agent'));}--- 自建轻量指纹(无第三方依赖) 如果只需要简单的请求指纹(IP + UA + Accept-Language 组合): publicfunctionfingerprint(RequestInterface$request): string{$raw=implode('|',[$request->getHeaderLine('User-Agent'),$request->getHeaderLine('Accept-Language'),$request->getHeaderLine('Accept-Encoding'),$request->server('remote_addr'),]);returnhash('xxh3',$raw);// PHP8.1+ 内置,极快}--- 选型建议: - 反欺诈/风控 → FingerprintJS Pro(付费但精度无敌) - 设备统计/适配 → DeviceDetector(免费,纯服务端) - 简单会话绑定 → 自建 hash(零依赖)
http://www.jsqmd.com/news/658045/

相关文章:

  • 一文读懂VMP、Java2C:APP核心代码是如何被“藏”起来的?
  • 2025-2026年发动机缸盖工厂推荐:五大口碑产品评测对比顶尖售后市场缺货快速响应 - 品牌推荐
  • 从一千帧到一滴精华——XComp如何让AI看懂长视频
  • VDD和VCC是什么
  • uniCloud短信验证码实战:我是如何3天搞定App注册登录功能的
  • Home Assistant美的设备本地控制终极指南:摆脱云端依赖,实现快速响应
  • 金程考研联系方式查询:聚焦考研辅导机构选择时的核心考量与信息核实指南 - 品牌推荐
  • Hyperf方案 数据隐私合规(GDPR)
  • 别等裁员潮——2026奇点大会紧急预警:AIAPI代码生成将重构IDE、CI、Code Review三重边界(附迁移路线图)
  • USB转TTL(也称 USB-TTL 模块)是一种串口通信适配器
  • 当思维的马拉松撞上AI的短跑局限——LongCoT与长程推理的深渊
  • 别再死记硬背了!用51单片机的AD/DA和PWM,亲手做个简易示波器信号发生器
  • 信息安全管理系统(ISMS)简介
  • 行波管从原理到设计,0 基础入门全攻略
  • 别再手动移植了!用Keil MDK为STM32F4系列一键生成静态库(SPL/HAL/LL全支持)
  • GstBuffer 核心机制与高效内存管理实战
  • Hyperf方案 多因素认证(MFA)
  • 如何快速配置插件系统:面向新手的5步完整指南
  • Docker一键部署Puter:打造私有云桌面与远程开发环境全攻略
  • 批量生成流程卡功能,助力企业简化工序流转与信息录入工作
  • 015、LangChain + RAG实战:把知识库问答系统真正串成一条可维护的工程链路
  • 2026 年阻垢剂领域优质企业推荐榜:上海环巨科技领衔,聚焦阻垢剂、缓蚀阻垢剂、反渗透阻垢剂、水处理阻垢剂专业服务商 - 海棠依旧大
  • 2026年维普论文AI率超标被打回?这份降AI攻略帮你一次过 - 我要发一区
  • 折叠波导慢波结构 CST 仿真全流程:从建模到注波互作用
  • 一人公司(OPC)典型案例与商业模式研究报告
  • 收藏!AI赋能程序员单干时代:一人公司如何从0到1?
  • REST 到底是什么?一篇讲透 + FastAPI 实战
  • 基于二阶RC模型的锂电池SOC估计自适应无迹卡尔曼滤波算法研究——包含噪声系数自适应的Matl...
  • 基于ITR9909与BC517达林顿管的光电感应开关改造实战
  • 广东企业注意!下一个高新技术企业就是你,但申报路上这些坑别踩 - 沐霖信息科技