Für Login Dinge darf es niemals niemals niemals (habe ich schon niemals geschrieben?) eine Schnittstelle geben!!!111 Vor allem nicht, wenn es User wie eine Freundin von mir gibt, die Passwörter vergibt die "123456xy" heißen.
Brut-Force- oder meinetwegen Wörterbuch-Attacken verhindert man aber anders.
- Verzögerung der Antwort, ggf. in Abhängigkeit von der Anzahl der Fehlversuche per IP und/oder Username ansteigend.
- (Zeitweise) Sperrung von IPs bei solchen Attacken, welche regelmäßig DDoS-Attacken ähneln.
- Zweifaktor-Authentifizierung
- Vorschriften bezüglich Länge und Komplexitätsmaß des Benutzernamens und Passworts.
Es ist faktisch egal, ob ein Angreifer sich notwendige Informationen aus echten Formularen zusammenpokt oder die Daten via API sendet, denn das HTTP[S]-Protokoll ist - streng genommen - schon eine API, welche durch das, was der TO und Du hier als „API“ auffasst, nur eine beschränkende Nutzung der umfassenderen API „HTTP“ ist…