我通过插件为一个WordPress网站创建了一个短信OTP系统,流程是这样的:
从收到的电子邮件打开链接-〉转到网站,在页面上登陆,发送短信-〉解决OTP -〉用户自动登录。
然而,我意识到,如果你发送链接给某人,在一个松弛的消息,即/,或其他流行的应用程序,该页面收到一个ping从他们的机器人,一个我的OTP请求被发送。
我想有一种方法来防止这种情况。我的第一个想法是太使用用户代理阻止流行的应用程序机器人,但它看起来很弱,他们是很难太维护。
$social_bots = array(
'/facebookexternalhit/i',
'/Twitterbot/i',
'/LinkedInBot/i',
'/Instagram/i',
'/Pinterest/i'
);
$user_agent = $_SERVER['HTTP_USER_AGENT'];
// REGEX condition to ensuring the user agent is not in the above.
有什么想法,我宁愿不使用任何额外的图书馆和 composer 的东西?
1条答案
按热度按时间zxlwwiss1#
我有两个建议
1.检查不是机器人,但浏览器。验证像10-15最流行的,如果可以发送短信
1.使用fetch或axios超时5秒后,使用js触发发送(添加一些预加载程序,以便用户了解smth正在处理)