项目开发中安全问题及解决方法-----平台资源需要考虑防刷机制

下面的例子中,直接调用方法获取短信验证码

@GetMapping("wrong")
public void wrong() {
 sendSMSCaptcha("13600000000");
}
private void sendSMSCaptcha(String mobile) {
 //调用短信通道
}

如果不加任何限制的话,某些用户大量请求就会导致系统出现问题

好的防刷逻辑是,对正常使用的用户毫无影响,只有疑似异常使用的用户才会感受到。对于短信验证码,有如下 4 种可行的方式来防刷。

• 只有固定的请求头才能发送验证码;

• 只有先到过注册页面才能发送验证码;

• 控制相同手机号的发送次数和发送频次;

• 增加前置图形验证码

你可能感兴趣的:(分布式项目调优,java,开发语言)