最佳实践

以下最佳实践是参考YCloud验证API编写的,重点描述了使用一次性密码(OTP)进行完整验证的过程。但是,无论您是否使用我们的服务,许多建议都适用。

验证、MFA 和 OTP

  • 验证:一个通用概念,指通过各种手段确认用户的身份。

  • 多重身份验证 (MFA):包括双因素身份验证 (2FA) 和类似术语,要求用户提供两个或多个证据(或因素)才能访问网站或应用程序。可用于验证的因素包括账户密码、魔术链接、一次性密码(OTP)、生物识别(指纹、人脸等)、推送认证等。MFA 常用于登录和支付确认场景,作为一种验证手段。额外的安全措施。

  • 一次性密码 (OTP):一种特定的验证方法,被广泛认为是一种更安全的方法。它涉及通过短信、电子邮件、WhatsApp 或其他消息渠道发送包含验证码的消息。该代码的有效期很短,只能使用一次来验证单个登录会话或交易。

YCloud验证API提供了完整的OTP解决方案,包括消息发送和验证。您可以轻松集成短信、电子邮件、语音和WhatsApp渠道,快速实现应用内注册、登录和MFA。

常见验证案例

  • 注册期间的身份绑定:验证通常是与用户建立在线关系的重要步骤。通过电话号码/电子邮件/社交媒体帐户验证用户身份,可以在确保用户安全的同时减少无效或虚假注册。

  • 无密码登录:由于传统静态密码容易受到攻击,越来越多的企业转而采用OTP或基于社交媒体的登录验证,这为无需记住复杂密码的用户提供了更好的登录体验。这会减少登录过程中的摩擦并增加转化次数。

  • 登录期间的多重身份验证:许多应用程序现在要求用户在输入密码后提供额外的验证因素,以增加额外的安全层。

  • 帐户更改:每当用户忘记密码时,可以通过某种形式的验证来恢复帐户。

  • 支付确认:支付过程中需要更高的安全性,尤其是在大多数金融应用中,用户在确认任何类型的支付交易之前都需要经过MFA。此外,如果您在欧盟运营,则需要通过提供额外的验证来遵守 PSD2。

平衡安全性和用户体验:

确保您添加的安全验证过程不会阻止用户实现其目标,无论是在注册还是完成交易期间。 选择正确的验证渠道并设计高效、安全且经济高效的用户验证流程是国际企业面临的重大挑战。

选择正确的验证渠道

YCloud的验证API集成了多种发送OTP的渠道,可以快速集成:

  • 短信

  • Whatsapp

  • 嗓音

  • 电子邮件 每个渠道都有其自身的优点和缺点。根据最终用户所在国家/地区选择合适的验证渠道,例如在美国和加拿大,由于成本低、送达率高,使用短信作为优先验证渠道。在印度、印度尼西亚、越南等地,WhatsApp或Zalo等社交媒体可能更适合作为验证消息传递渠道,因为它们可以提高您的验证成功率并且更具成本效益。

一旦明确了首选验证通道,就可以考虑提供备用验证通道。如果使用短信作为主要验证渠道,至少要保证当用户无法接收短信时可以使用语音或WhatsApp作为备份。

另外,很多优秀的公司设计了支持多种验证渠道并让用户选择的验证流程。例如,TikTok支持短信验证、电子邮件验证和社交媒体验证。

📘在 YCloud 验证 API 中了解有关不同验证通道的更多信息。

选择可靠的服务提供商

如果您的基础设施或消息传递通道不够安全,那么您的身份验证将不再安全。选择 YCloud 作为您的渠道提供商是一个明智的选择,因为它提供强大的安全性和可靠、快速的交付。

添加额外的验证选项

不可能知道用户在任何特定时间可能会遇到什么情况,例如忘记密码、丢失手机或在国外漫游。启动验证时,至少备份一种验证用户身份的其他方法。常见的组合包括:

  • 密码+短信验证

  • 短信验证+语音验证

  • Whatsapp验证+短信验证

  • 密码+邮箱验证

然而,每一个用户都来之不易,支持更多的验证组合可以减少真实用户在验证过程中的摩擦。

使用品牌名称作为消息传递渠道

通过 SMS 发送 OTP 消息时,在注册发件人时使用品牌名称或网站名称(而不是随机数字)尤为重要。这样可以给用户带来更大的安全感。

📘您可以在YCloud中预先注册每个国家/地区的发件人ID

使用适当的验证码长度

OTP 的复杂性取决于所使用的字符串,可以是字母、数字或两者兼而有之。一般情况下,OTP 的长度应在 4 到 10 位数字之间,以提供足够的安全性,同时保证流畅的用户体验。

验证码是消息内容的重点

每当向用户发送 OTP 消息时,验证码都应在消息中突出显示。确保代码位于消息的第一行,如果通过 Whatsapp 或电子邮件发送消息,请考虑将其加粗或突出显示。

使用本地用户可以理解的语言

虽然OTP消息的核心是一串字符,但有些用户可能仍然不明白其中的要点。YCloud verify提供多种语言的预置验证消息模板,确保消息符合当地法规,不会被运营商过滤。

提供重试验证码的逻辑

如果信道故障阻止用户正确接收验证消息,则用户可能想要发起“重试”。

但是,为了防止恶意请求或不耐烦的用户,我们建议添加验证请求间隔:

  • 第一次重试间隔30秒

  • 以指数方式增加后续重试的时间间隔或设置重试频率

这将有助于:

  • 避免向用户发送重复的信息。

  • 减少恶意攻击的可能性。

代码验证

向用户发送验证消息后,使用预先生成的代码验证用户输入的代码,并遵循以下建议:

  • 设置验证码的有效期为5-10分钟。有效期满后不得再次验证。

  • 每个验证码只能使用一次。验证后,在数据库中添加“已验证”标志。

  • 限制验证码验证频率,抵御暴力攻击。 YCloudVerify预装了上述策略,并支持定制,您可以专注于您的业务,剩下的交给我们。

监控验证成功率

我们建议您实时监控验证的成功率。如果您发现在某些意想不到的国家/地区验证成功率迅速下降或突然上升,您应该密切关注,因为它可能来自某些恶意攻击者。

我们建议您设计一些触发警报,以在达到某些异常阈值时提醒您。YCloud verify内置安全警告触发器,您可以在界面上轻松配置,以接收异常警报。

Last updated