Comment by alphager
1 month ago
The 30 seconds (+30-60 seconds to account for clock drift) are long enough to exploit.
TOTP is primarily a defense against password reuse (3rd party site gets popped and leaks passwords, thanks to TOTP my site isn't overrun by adversaries) and password stuffing attacks.
In every system I've worked on recent successful TOTPs have been cached as well to validate they're not used more than once.
In fact, re-reading RFC 6238 it states:
https://datatracker.ietf.org/doc/html/rfc6238
Assuming your adversary isn't actually directly impersonating you but simply gets the result from the successful attempt a few seconds later, the OTP should be invalid, being a one time password and all.