fix: secure email regex against ReDoS vulnerability

- Replace vulnerable regex with bounded quantifiers
- Add email length check (max 254 chars per RFC 5321)
- Fixes SonarQube security hotspot S5852

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
soufiane 2025-12-04 16:35:03 +01:00
parent 47059a5129
commit d4c2252121

View File

@ -42,7 +42,9 @@ export default function RegisterPage() {
// Vérifier si l'email existe déjà
const checkEmail = async (email: string) => {
if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
// Regex sécurisée contre ReDoS avec limite de longueur
const isValidEmail = email && email.length <= 254 && /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(email);
if (!isValidEmail) {
setEmailStatus({ checking: false, exists: null, valid: null, message: '' });
return;
}