使用场景介绍

本司的使用场景是:做营销活动,邀请新用户得某某实物,这时候会有用户使用接码平台,利用国内或国外手机号进行注册,默认是黑号,所以要进行拦截,由此调研,确定使用阿里云的风险识别

阿里云风险识别文档

产品定位

风险识别(Fraud Detection)基于阿里巴巴安全团队多年风控技术的积累,结合阿里云、淘宝、支付宝等平台的风险运营经验,为企业用户提供智能、轻量、成熟的业务风控解决方案,快速解决业务安全风险,降低损失。

目前的产品包括:注册风险识别(基础版与增强版)、营销风险识别(基础版与增强版)、登录风险识别(基础版与增强版)、设备风险识别、业务风险情报、邮箱画像、地址评分。

PHP SDK

PHP SDK 源码下载:https://github.com/aliyun/aliyun-openapi-php-sdk

PHP SDK的环境准备、安装使用可参考:阿里云SDK开发指南

克隆阿里云的php sdk 库

git clone https://github.com/aliyun/aliyun-openapi-php-sdk.git

实际使用到的文件夹如下:aliyun-php-sdk-core、aliyun-php-sdk-saf

公共参数介绍

服务接口的入参参数包含公共请求参数和具体服务事件参数,公共请求参数是指每一个接口都需要使用到的参数,点击跳转到阿里云公共请求参数文档。

Service参数

阿里云云盾颁发的服务code,不可随意设置。以下是境内常用到的code、如果更多信息,请查看文档。

  • 注册风险识别-增强版服务的code是account_abuse_pro
  • 注册风险识别服务的code是account_abuse
  • 营销风险识别-增强版服务的code是coupon_abuse_pro
  • 营销风险识别服务的code是coupon_abuse
  • 登录风险识别-增强版服务的code是account_takeover_pro
  • 登录风险识别服务的code是account_takeover
  • 设备风险识别服务的code是device_risk

开始php实战

首先封装一个tools文件:AliApi.php

<?php
/*** 阿里api* User: https://github.com/WXiangQian*/namespace App\Http\Tools;use saf\Request\V20180919 as saf;class ALiApi
{public static function run($json_data){include_once __DIR__.'/aliyun-openapi-php-sdk/aliyun-php-sdk-core/Config.php';// 初始化// 实战使用的是laravel框架 env()默认为配置参数,其它框架可自行设置$iClientProfile = \DefaultProfile::getProfile("cn-shanghai", env("ACCESS_KEY_ID",''), env("ACCESS_SECRET_ID",''));$client = new \DefaultAcsClient($iClientProfile);// 设置参数$request = new saf\ExecuteRequestRequest();// 产品service请参考[公共参数]文档中的Service字段描述$request->setService('account_abuse'); // 注册风险识别服务$request->setServiceParameters($json_data);// 发起请求$response = $client->getAcsResponse($request);// 请求正常。if ($response->Code == 200) {$score = 0;// 注册风险识别服务返回的Data参数中的score值,值区间在0~100之间,值越大代表行为的风险程度越大。if (isset($response->Data->Score)) {$score = $response->Data->Score;}// 将调用过风险识别的数据存到redis(后台可用list分页)$data = json_decode($json_data);getRedis()->lPush('list:sms',$data->mobile.'_'.$score);return self::handle_score($score);}switch ($response->Code) {case 400: $msg = 'ServiceParameters(事件参数)不合法';break;case 402: $msg = '日QPS超过已购规格,限流。';break;case 403: $msg = '权限不足,服务未开通或已到期。';break;case 404: $msg = 'Service(服务参数)不合法。';break;case 500: $msg = '内部服务器错误。';break;default : $msg = $response->Code;break;}// 自定义日志处理 可有可无write_log('ali-注册风险识别事件','info','logs/ali_sdk.log','错误信息:'.$msg);return 'error';}public static function handle_score($score){$score = intval($score);/*** 0到35(不含)   低风险 可放过* 35(含)到65(不含)   中风险 可打标观察* 65(含)到85(不含) 中高风险    可进一步安全验证或限制高危业务使用权限* 85(含)到100(含)   高风险 可限制高危业务使用权限*/$bool = false;if ($score >= 0 && $score < 65) {$bool = true;}return $bool;}
}

控制器调用

下方为实战demo,具体参数定义请查看注册风险识别事件及返回参数

/*** 防垃圾手机号注册问题* @param $phone_num 手机号码* @param $area_code 地区代码* User: https://github.com/WXiangQian*/
public function ali_api_check(Request $request)
{// 默认国内手机号。如有海外手机,需包含国家地区代码,格式为”地区代码-手机号码“$phone_num = strtolower( $request->input('phone_num') );$phone_num = str_replace(' ','',$phone_num);$area_code = $request->input('area_code','0086'); // 地区代码 默认0086 $new_phone_num = $phone_num;if ($area_code != '0086') {$new_phone_num = $area_code.'-'.$new_phone_num;}$arr = ['mobile'=>$new_phone_num,'operateTime'=>time(),'ip'=>ip2long(Request::ip());,];if (!empty($_SERVER['HTTP_REFERER'])) $arr['refer'] = $_SERVER["HTTP_REFERER"];if (!empty($_SERVER['HTTP_USER_AGENT'])) $arr['userAgent'] = $_SERVER["HTTP_USER_AGENT"];$json_data = json_encode($arr);$ali_res = ALiApi::run($json_data);if ($ali_res !== 'error') {// 有风险if ($ali_res === false) {$this->ajaxReturn(['errno'=>401,'msg'=>'手机号码异常,请联系客服。']);}}
}

demo地址

https://github.com/WXiangQian/laravel-api

结束语

本实战是用php语言简单接入了阿里云注册风险识别,使用框架为laravel框架,仅供参考,灵活运用方可适用于所有php框架,希望大家通过此文可以得到收获。

原文链接:https://juejin.im/post/5ddf3559e51d4543172e8208

php实现防垃圾手机号注册功能(接入阿里云风险识别)相关推荐

  1. 新功能:阿里云风险识别 - 用户行为分析上线!...

    羊毛党已经产业化.规模化.专业化 随着互联网.智能设备及各种新生业务的飞速发展,越来越多的业务模式开始呈现线上化,虚拟网络给人们带来了便捷.高效的同时也衍生出了一类职业--网络黑灰产:他们为获得利益不 ...

  2. 电商直播带货功能接入阿里云第三方实现

    开通阿里云导播直播功能 接入阿里云三方直播平台,需要一个备过案的域名(有点烦,省事的话就问公司提供) 打开阿里云控制台 添加域名 这里要注意一下:添加的域名是二级域名 比如 推流域名: pushliv ...

  3. Android开发-在Android里接入阿里云推流SDK实现直播推流的功能

    前 言 如今,在国内移动互联网发展了几年的时间,移动开发技术也相对的成熟,在咱们日常使用的手机App中也少不了直播的功能,不管是娱乐类.游戏类.体育类还是教育类等的App都会有直播的功能,可以说直播的 ...

  4. 【阿里云生活物联网架构师专题 ②】esp8266 sdk 直连接入阿里云物联网平台,实现天猫精灵找队友零配网功能和语音控制;

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.esp32接入阿里云物联网平台,实现天猫精灵语音控制: 2.es ...

  5. 10分钟虚拟设备接入阿里云IoT平台实战

    10分钟虚拟设备接入阿里云IoT平台实战 1. 准备工作 1.1 注册阿里云账号 使用个人淘宝账号或手机号,开通阿里云账号,并通过实名认证(可以用支付宝认证) 1.2 免费开通IoT物联网套件 产品官 ...

  6. Python模拟智能开关设备MQTT接入阿里云物联网平台 - PyCharm paho.mqtt

    概要 Python 使用 paho.mqtt 库,利用阿里云物联网平台的设备证书:productKey.deviceName.deviceSecret,自动合成 userName.passWord.以 ...

  7. MQTT.fx客户端MQTT接入阿里云物联网平台,登录、订阅、发布消息

    目录 1. 准备 2. MQTT.fx 设置登录名.密码 3. MQTT.fx 接入阿里云,订阅Topic 4. 阿里云下发数据给 MQTT.fx 5. MQTT.fx 发布消息给服务器 相关链接:M ...

  8. 使用网络调试助手 MQTT接入阿里云物联网平台,逐字节讲解,适用单片机/ESP8266接入阿里云

    目录 1. CONNECT 连接服务器 2. CONNACK 确认连接 3. DISCONNECT 断开连接 4. PINGREQ 心跳请求 5. PINGRESP 心跳响应 6. SUBSCRIBE ...

  9. 【小程序案例】支付宝小程序-MQTT模器,IoT设备通过WSS接入阿里云IoT物联网平台...

    支付宝小程序-MQTT模拟器通过WSS接入阿里云IoT物联网平台 准备工作 1.1 注册阿里云账号 开通阿里云账号,并通过支付宝实名认证 https://www.aliyun.com 1.2 免费开通 ...

最新文章

  1. JOGL   java调用openGL
  2. 802.11协议精读5:隐藏终端和暴露终端
  3. 获取中位数java_java 计算中位数方法
  4. A-ID and password
  5. http响应协议分析
  6. 国外少儿PYTHON编程书推荐
  7. android对话框字体大小,Android Dialog 设置字体大小的具体方法
  8. laravel中的多对多关系详解
  9. Winform开发框架中工作流模块之申请单草稿处理
  10. arXiv pdf下载很慢的解决方法
  11. 利用matlab绘制函数图像
  12. 1635: [Usaco2007 Jan]Tallest Cow 最高的牛
  13. 过程FMEA(PFMEA)步骤一:策划与准备
  14. windows/system32/winload.exe系统无法登录报错428的快速解决方法
  15. 干净卸载VS2015
  16. C/C++计算字符串的长度
  17. 【bsauce读论文】 Playing for K(H)eaps: Understanding and Improving Linux Kernel Exploit Reliability
  18. 2022人才市场洞察及薪酬指南
  19. uniapp-获取省市区地址及内部高德sdk的使用
  20. Expert 诊断优化系列------------------内存不够用么?

热门文章

  1. linux终端c需要输入法,LINUX下怎么设置默认输入法?
  2. 指令系统——指令格式(详解)
  3. 项目管理系列---任务管理工具深度分析
  4. Web前端开发技术实验与实践(第3版)储久良编著实训7
  5. 微信多媒体团队梁俊斌访谈:聊一聊我所了解的音视频技术
  6. 英语的重要性之as的用法
  7. 小白看完都学会了!mysqlmergeintousing
  8. 解决Qt 5.14.2搭配 VS2017 缺少调试器,黄色感叹号
  9. CHM文件打开后乱码
  10. 【应用】AP5153 线性降压恒流 PWM调光LED照明驱动 高压低压