Temporarily disable registration abuse system

This commit is contained in:
Moxie Marlinspike
2021-01-09 09:08:46 -08:00
committed by Jon Chambers
parent adcdb19c88
commit 22ef058cb6
2 changed files with 202 additions and 201 deletions

View File

@@ -536,61 +536,62 @@ public class AccountController {
Optional<String> pushChallenge)
{
if (captchaToken.isPresent()) {
boolean validToken = recaptchaClient.verify(captchaToken.get(), requester);
if (validToken) {
captchaSuccessMeter.mark();
return new CaptchaRequirement(false, false);
} else {
captchaFailureMeter.mark();
return new CaptchaRequirement(true, false);
}
}
if (pushChallenge.isPresent()) {
Optional<String> storedPushChallenge = storedVerificationCode.map(StoredVerificationCode::getPushCode);
if (!pushChallenge.get().equals(storedPushChallenge.orElse(null))) {
return new CaptchaRequirement(true, false);
}
}
List<AbusiveHostRule> abuseRules = abusiveHostRules.getAbusiveHostRulesFor(requester);
for (AbusiveHostRule abuseRule : abuseRules) {
if (abuseRule.isBlocked()) {
logger.info("Blocked host: " + transport + ", " + number + ", " + requester + " (" + forwardedFor + ")");
blockedHostMeter.mark();
return new CaptchaRequirement(true, false);
}
if (!abuseRule.getRegions().isEmpty()) {
if (abuseRule.getRegions().stream().noneMatch(number::startsWith)) {
logger.info("Restricted host: " + transport + ", " + number + ", " + requester + " (" + forwardedFor + ")");
filteredHostMeter.mark();
return new CaptchaRequirement(true, false);
}
}
}
try {
rateLimiters.getSmsVoiceIpLimiter().validate(requester);
} catch (RateLimitExceededException e) {
logger.info("Rate limited exceeded: " + transport + ", " + number + ", " + requester + " (" + forwardedFor + ")");
rateLimitedHostMeter.mark();
return new CaptchaRequirement(true, true);
}
try {
rateLimiters.getSmsVoicePrefixLimiter().validate(Util.getNumberPrefix(number));
} catch (RateLimitExceededException e) {
logger.info("Prefix rate limit exceeded: " + transport + ", " + number + ", (" + forwardedFor + ")");
rateLimitedPrefixMeter.mark();
return new CaptchaRequirement(true, true);
}
return new CaptchaRequirement(false, false);
// if (captchaToken.isPresent()) {
// boolean validToken = recaptchaClient.verify(captchaToken.get(), requester);
//
// if (validToken) {
// captchaSuccessMeter.mark();
// return new CaptchaRequirement(false, false);
// } else {
// captchaFailureMeter.mark();
// return new CaptchaRequirement(true, false);
// }
// }
//
// if (pushChallenge.isPresent()) {
// Optional<String> storedPushChallenge = storedVerificationCode.map(StoredVerificationCode::getPushCode);
//
// if (!pushChallenge.get().equals(storedPushChallenge.orElse(null))) {
// return new CaptchaRequirement(true, false);
// }
// }
//
// List<AbusiveHostRule> abuseRules = abusiveHostRules.getAbusiveHostRulesFor(requester);
//
// for (AbusiveHostRule abuseRule : abuseRules) {
// if (abuseRule.isBlocked()) {
// logger.info("Blocked host: " + transport + ", " + number + ", " + requester + " (" + forwardedFor + ")");
// blockedHostMeter.mark();
// return new CaptchaRequirement(true, false);
// }
//
// if (!abuseRule.getRegions().isEmpty()) {
// if (abuseRule.getRegions().stream().noneMatch(number::startsWith)) {
// logger.info("Restricted host: " + transport + ", " + number + ", " + requester + " (" + forwardedFor + ")");
// filteredHostMeter.mark();
// return new CaptchaRequirement(true, false);
// }
// }
// }
//
// try {
// rateLimiters.getSmsVoiceIpLimiter().validate(requester);
// } catch (RateLimitExceededException e) {
// logger.info("Rate limited exceeded: " + transport + ", " + number + ", " + requester + " (" + forwardedFor + ")");
// rateLimitedHostMeter.mark();
// return new CaptchaRequirement(true, true);
// }
//
// try {
// rateLimiters.getSmsVoicePrefixLimiter().validate(Util.getNumberPrefix(number));
// } catch (RateLimitExceededException e) {
// logger.info("Prefix rate limit exceeded: " + transport + ", " + number + ", (" + forwardedFor + ")");
// rateLimitedPrefixMeter.mark();
// return new CaptchaRequirement(true, true);
// }
//
// return new CaptchaRequirement(false, false);
}
@Timed