使用手机在网状态查询 API 有效防止虚假注册的设计思路

Posted smartgirlintown

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用手机在网状态查询 API 有效防止虚假注册的设计思路相关的知识,希望对你有一定的参考价值。

引言

随着移动互联网的普及,手机在网状态成为重要的数据指标。在网状态反映了手机用户的实际使用情况,对于各类企业和机构具有重要意义。

本文将为大家介绍手机在网状态 API 的主要特点和优势,并且探讨手机在网状态 API 的应用场景和效果展示,最后一起展望手机在网状态 API 的未来发展和应用前景。

手机在网状态查询 API 的主要特点和优势

  • 简单易用的接口
  • 支持多种在网状态的查询
  • 支持多种运营商的手机号码查询
  • 高效可靠的查询速度和准确率

手机在网状态 API 的使用案例和效果展示

1.使用案例

2.具体的应用案例

假设一个在线商店需要验证用户的手机号码是否有效,以防止虚假注册和欺诈交易。商店可以使用手机在网状态API 查询用户的手机号码状态,如果手机号码是有效的,那么商店可以让用户完成注册和购买过程。如果手机号码是无效的,商店可以拒绝注册或购买。

手机在网状态查询 API 的实现方式和技术细节

1.接口密钥的获取和使用

用户需要在 API 提供商的官方网站进行注册,并申请 API 密钥,获得 API 接口调用的权限。

APISpace 为例,使用手机在网状态API 的步骤通常如下:

进入手机在网状态API 详情页,点击【免费试用】或者【注册】都可以获取 API 密钥。

注册成功后,我们在页面导航菜单点击 【我的 API】进入 【访问控制】页面,即可看到平台提供的密钥。

2.手机号码的查询和结果处理

点击免费试用成功后,系统会自动进入 API 的测试界面,如下图,我们填写好需要的参数如手机号码,点击发送即可获取查询结果。

3.使用代码接入 API 接口 - PHP 方式

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://eolink.o.apispace.com/zwsjmd/mobile_netstatus",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "mobile=&encrypt=&encryptFields=",
  CURLOPT_HTTPHEADER => array(
    "X-APISpace-Token:使用平台提供的 API 密钥",
    "Authorization-Type:apikey",
    "Content-Type:"
  ),
));

$response = curl_exec($curl);

$err = curl_error($curl);

curl_close($curl);

if ($err) 
  echo "cURL Error #:" . $err;
 else 
  echo $response;

4.应用逻辑

需要注意的是,手机在网状态API并不是完全可靠的验证方式。因为一些欺诈者可能使用真实的手机号码进行注册,但是这个手机号码已经处于停机或欠费状态。此外,一些欺诈者还可能使用他人的手机号码进行注册。因此,开发者需要结合其他的验证手段来增强应用的安全性。

手机在网状态 API的未来发展和应用前景分析

1.技术趋势和发展方向

随着移动互联网的普及和5G 技术的发展,手机在网状态API将继续朝以下方向发展:

  • 更高效率:API 将会通过更快的响应速度和更准确的查询结果来提高效率。
  • 更加智能化:人工智能技术将被应用于 API 中,使得其可以更好地理解和分析查询请求,提供更加智能化的结果。
  • 更加安全:API 将会使用更加安全的协议和加密技术,确保数据的安全性和隐私保护。

2.行业发展和应用前景

手机在网状态 API 将会在以下方面得到广泛的应用:

  • 电信运营商:手机在网状态API将成为电信运营商管理手机账户、识别欺诈、调查丢失手机以及服务故障的重要工具。
  • 金融行业:手机在网状态 API 将被用于金融行业中,以验证手机账户持有人的身份,防止欺诈和洗钱等活动。
  • 电商平台:手机在网状态 API 将被用于电商平台中,以验证用户手机号的有效性,降低虚假注册和欺诈交易的风险。

防止不受信任的客户端使用 REST API 的登录/注册端点

【中文标题】防止不受信任的客户端使用 REST API 的登录/注册端点【英文标题】:Prevent untrusted clients to use login/register endpoints of REST API 【发布时间】:2020-08-18 16:34:11 【问题描述】:

我实际上有一个 ReactJs 中的 SPA + 一个 Flutter 中的移动应用程序 + 一个使用 SailsJs 开发的 REST API,在单独的服务器上运行。当我们使用有效信息(ID/密码)登录时,我使用 API 发回的安全会话 cookie 管理用户身份验证。

所以所有需要用户进行身份验证的端点都受到保护(除非还有其他我不知道的安全最佳实践?)。每次调用受保护的端点之一时都会检查会话 cookie 的过期和有效性。

我确实阅读了大量有关保护 REST API 的主题和博客文章。我的问题从来没有或几乎没有出现过。所以现在我的主要问题是:

我如何限制我的公共 API 端点(当前登录和注册)不需要用户进行身份验证(因为有用于实现此任务的端点......)只在我信任的情况下使用客户端应用程序(网络和移动)?

如何防止他人开发的其他应用使用这些端点?

我不希望任何人通过我的 API 登录,除非它是在我正在开发的客户端应用程序中完成的...我不希望任何人复制我的应用程序并以这种方式成功使用我的 API知道...

我看到许多带有登录 API 路由(例如 Heroku)的流行服务无法在 Postman 中使用相同的参数(403 错误代码)进行访问。所以这是可能的。但是他们是怎么做到的呢?专门论坛中没有任何内容可以处理此问题,否则我错过了一些东西!

我很难在客户端中存储一个秘密令牌来对其进行身份验证,但它实际上是通过 Web 开发人员工具公开的。

需要一些建议。

谢谢

【问题讨论】:

看看智威汤逊 请开发?每个请求一个 JWT + 会话 cookie JWT 已经在这里了吗?我怎样才能做到这一点? 您可以在您的服务器中使用 CORS 来启用只有您信任的客户端才能向您的 api 请求。 【参考方案1】:

用户身份验证不是应用身份验证

所以所有需要用户进行身份验证的端点都受到保护...

此端点仅在请求中识别、验证和授权 他的方面受到保护,但不适用于 What 正在执行请求,这不是一个主题开发人员非常了解,无论他们是初级还是高级。

访问 API 服务器的对象和对象的区别

在我写的一篇题为 Why Does Your Mobile App Need An Api Key? 的文章中,您可以更详细地阅读 什么 访问您的 API 服务器之间的区别,我在其中引用了以下:

what 是向 API 服务器发出请求的事物。它真的是您的移动应用程序的真实实例,还是机器人、自动脚本或攻击者使用 Postman 之类的工具手动绕过您的 API 服务器?

是移动应用的用户,我们可以通过多种方式进行身份验证、授权和识别,例如使用 OpenID Connect 或 OAUTH2 流。

所以 是您的 API 服务器的用户,您将能够验证和授权对数据的访问,而 什么 是发出该请求的软件代表用户、您的正版应用、被篡改的应用、自动脚本或通过 cURL、Postman 或类似工具手动使用您的 API 的人。

到目前为止,我希望您有足够的知识来理解为什么用户(who)身份验证与应用(what)身份验证不同。

将 API 服务器锁定到应用程序

如何限制我的公共 API 端点(当前登录和注册)不需要用户进行身份验证(因为有用于实现此任务的端点......)仅用于我受信任的客户端应用程序(网络和移动)?

我认为,到目前为止,您可能已经清楚,需要保护的不仅仅是登录和注册端点,以免 什么 正在执行请求。

如何防止其他人开发的其他应用使用这些端点? 我不希望任何人通过我的 API 登录,除非它是在我正在开发的客户端应用程序中完成的......我不希望任何人在不知情的情况下复制我的应用程序并以 0 保护的方式成功使用我的 API。 ..

这对于网络应用来说是极难实现的,但是当移动应用证明概念被实施时,移动应用可以高度自信地做到这一点。

对于网络应用程序

由于网络构建方式的性质,检查网络应用程序只需按 F12 或检查页面源,然后搜索您需要从其他工具访问 API 服务器的任何内容。

您可以学习一些有用的技术来帮助您的 API 服务器尝试仅响应来自您所期望的什么的请求,您的真正网络应用程序,为此我邀请您阅读 @987654322 @ 问题从应用程序的调用中保护 api 数据,特别是专门用于保护 API 服务器的部分

对于移动应用程序

要了解如何将 API 服务器锁定到移动应用程序,我建议您阅读 my answer 到 关于保护 API 服务器可能的更好解决方案部分的问题如何保护移动应用程序的 API REST?

要保护的端点

因此,所有需要对用户进行身份验证的端点都受到保护(除非还有其他我不知道的安全最佳实践?)。

如果您只想增强登录和注册端点的安全性,这取决于您,但我的建议是您增强所有这些端点的安全性,以检测 什么 正在访问它们。

邮递员与 Heroku 等人

我看到许多带有登录 API 路由(例如 Heroku)的流行服务无法在 Postman 中使用相同的参数(403 错误代码)进行访问。所以这是可能的。但是他们是怎么做到的呢?专门论坛中没有任何东西可以处理这个问题,否则我错过了一些东西!

我从未使用过 Heroku,但是当我使用在 Postman 中不起作用但在其他客户端中起作用的 API 时,例如从 cURL 中,然后我禁用 Postman 发送它自己的 user-agent 并且通常 API 会开始接受请求。

如果没有,那么他们可能正在做device fingerprinting:

设备指纹或机器指纹是为识别目的而收集的有关远程计算设备的软件和硬件的信息。通常使用指纹算法将信息同化为简短的标识符。浏览器指纹是通过与设备的网络浏览器交互而专门收集的信息。

指纹识别可以在主动或被动模式下完成。在主动模式下,一些 Javascript 在客户端上运行以收集一些数据以发送回 API 服务器,而在被动模式下,它使用服务器中请求的可用信息,例如 http 标头和请求参数。

虽然这提高了伪造 什么 正在执行请求的门槛,但可以通过观察受信任的客户端如何发送请求并模仿它来绕过它。对于攻击者来说,枚举所有变体然后自动化它们只是多一点工作。

您想加倍努力吗?

我确实阅读了大量有关保护 REST API 的主题和博客文章。

首先,我祝贺您付出了如此多的努力来教育自己保护您的 API。

我不知道您是否已经阅读了我将要链接的一些 OWASP 资源,但在回答安全问题时,我总是喜欢参考 OWASP 基金会的出色工作;)

对于网络应用程序

OWASP Web Top 10 Risks

OWASP Top 10 是一个强大的 Web 应用程序安全意识文档。它代表了对 Web 应用程序最关键的安全风险的广泛共识。项目成员包括来自世界各地的各种安全专家,他们分享了他们的专业知识来制作此列表。

The Web Security Testing Guide:

OWASP Web 安全测试指南包括用户可以在自己的组织中实施的“最佳实践”渗透测试框架和描述测试最常见 Web 应用程序和 Web 服务安全问题的技术的“低级”渗透测试指南。

对于移动应用

OWASP Mobile Security Project - Top 10 risks

OWASP 移动安全项目是一个集中资源,旨在为开发人员和安全团队提供构建和维护安全移动应用程序所需的资源。通过该项目,我们的目标是对移动安全风险进行分类并提供开发控制以减少其影响或被利用的可能性。

OWASP - Mobile Security Testing Guide:

移动安全测试指南 (MSTG) 是移动应用安全开发、测试和逆向工程的综合手册。

对于 APIS

OWASP API Security Top 10

OWASP API 安全项目旨在通过强调不安全 API 中的潜在风险并说明如何降低这些风险,为软件开发人员和安全评估人员提供价值。为了实现这一目标,OWASP API 安全项目将创建和维护一份 API 安全风险前 10 名文档,以及一个文档门户,用于在创建或评估 API 时提供最佳实践。

【讨论】:

非常感谢您抽出宝贵时间,这可能是我在 SO 上看到的最佳答案...如果在阅读完您的所有链接后还有其他问题,我会回来。

以上是关于使用手机在网状态查询 API 有效防止虚假注册的设计思路的主要内容,如果未能解决你的问题,请参考以下文章

手机在网时长和在网状态的区别

常见的 API 大全分享

运营商API接口用途简介

防止不受信任的客户端使用 REST API 的登录/注册端点

如何使用 Jmeter 为 100 个手机号码和电子邮件唯一的用户加载测试注册 API

常见的免费可用的 API 大全整理