- Expédié
- 23 septembre 2026 à 08:37 UTC
- Auteur
- Kamo
- Commite
- 133a70d
CarrièresPublicPurtotoder's POST/alerts/alerts est le seul critère anonyme, non authentifié dans ce service qui envoie un e-mail sur chaque appel accepté, sans rien qui fait apparaître la fréquence: a l'appelant pourrait envoyer un lien de confirmation vers n'importe quelle adresse, à plusieurs reprises, en tout cas, harcèlement d'un une boîte de réception réelle, ou un risque de dépenses/réputation non lié sur le propre domaine d'envoi de la plateforme. Ajouter CareersAlertThrottle (Redis-backed; chaque règle est un créneau temporel, donc pas de changement de schéma): à la plupart d'une confirmation par heure par adresse, pas de ré-envoi alors qu'une fenêtre en attente non confirmée de 24 heures est le fonctionnement, et un plafond de tentative de tentative IP par source. Capuchonnez également combien de rangées non confirmées un org peuvent tenir à Une fois, donc un flot de nouvelles adresses ne peut pas faire pousser la table sans bornes. Chaque vérification répond en restant silencieux (s'abonner() retourne toujours 202) plutôt que de dépasser une erreur qui se distingue correspondant à la règle actuelle du critère d'évaluation selon laquelle un appelant public ne doit jamais être en mesure de dire "chiffre d'attaque" à l'exception du "envoi", qui serait lui-même un orabe pour "l'adresse existe-t-elle". La clé per IP est résolue via LegalClientIp.resolve (le plus important PUBLIC X-Forwarded-For hop), pas la lecture de style de gauche le plus shop utilisée pour les pistes d'audit ailleurs dans ce service: le saut le plus à gauche est celui qu'un CLIENT écrit, donc en keying un gaz sur il laisserait un attaquant vaincre le plafond per-IP simplement en envoyant une valeur différente sur chaque demande. La propre classe de Javadoc de LegalClientIp documente exactement ce mode d'échec pour le le cas de la preuve; il s'applique tout aussi directement ici.
