我有一个在Laravel 5.8上运行的API,该API使用Nexmo Verify API来通过SMS发送两件事的代码:
iOS应用程序和Android应用程序使用此PHP API。
在第一种情况下(1),我必须在发送短信之前检查电话号码是否存在。
在第二种情况下(2),我必须在发送短信之前检查电话号码是否存在。
所以,我可能有两条API路由:
问题在于,我们可以拥有一条类似于/api/phone/sendcode
的路由,并且只要找到端点是什么,任何人都可以直接调用此路由而无需使用移动应用程序(毕竟这只是一个API)。使用此方法发送垃圾邮件很容易。
或者,他们也可以拨打一条api/phone/exists
吨的路线来尝试吸引所有现有用户。
如何保护端点,以避免人们直接将其用于垃圾邮件或检查是否存在帐户?
我已经有一个限制系统,可以阻止特定的IP地址在一分钟内请求一个X倍以上的终结点,但是我认为这还不够,可以绕开(使用代理或其他方法)。
此外,我宁愿避免使用验证码。