Heim > Artikel > Backend-Entwicklung > Wie kann verhindert werden, dass jemand den Bestätigungscode klaut?
Die vom Pit-Produkt entwickelte Registrierung/Anmeldung kann den Mobiltelefon-Verifizierungscode erhalten, es gibt jedoch keinen grafischen Bestätigungscode. Und jetzt wurde unsere Schnittstelle zum Erhalten von Bestätigungscodes viele Male geklaut. In der letzten Stunde gab es Tausende von Anfragen, und sie kamen alle von unterschiedlichen IPs und unterschiedlichen Mobiltelefonnummern....
Bitte geben Sie mir einen Ratschlag, zusätzlich zum Hinzufügen eines grafischen Bestätigungscodes. Wie kann ich das Wischen verhindern?
Die vom Pit-Produkt entwickelte Registrierung/Anmeldung kann den Mobiltelefon-Verifizierungscode erhalten, es gibt jedoch keinen grafischen Bestätigungscode. Und jetzt wurde unsere Schnittstelle zum Erhalten von Bestätigungscodes viele Male geklaut. In der letzten Stunde gab es Tausende von Anfragen, und sie kamen alle von unterschiedlichen IPs und unterschiedlichen Mobiltelefonnummern....
Bitte geben Sie mir einen Ratschlag, zusätzlich zum Hinzufügen eines grafischen Bestätigungscodes. Wie kann ich das Wischen verhindern?
Alles, was mir einfällt, außer dem grafischen Bestätigungscode:
Basierend auf der Mobiltelefonnummer können maximal N Verifizierungscodes pro Mobiltelefon und Tag gesendet werden. Es scheint, dass LZ dies bereits hinzugefügt hat.
Beschränken Sie jede IP basierend auf der IP auf das Senden von bis zu N Bestätigungscodes pro Tag ... -- Nachteil: Normale Benutzer können leicht versehentlich getötet werden, mit Vorsicht verwenden
[Ultimative Methode] Basierend auf Big-Data-Analyse des Benutzerverhaltens
Wie analysiert man anhand des Benutzerverhaltens? Ich habe mir eine einfache Methode überlegt:
Zuallererst sollten normale Benutzer zusätzlich zum Senden der Bestätigungscode-Anfrage auch auf andere Ressourcen auf der Seite zugreifen, wie z. B. CSS/JS/HTML/Bilder usw.
Wenn es sich jedoch um einen Pinsel handelt, kann er möglicherweise nicht gezielt auf diese Ressourcen zugreifen.
Wenn der Benutzer also auf die Seite zugreift, kann ein human
-Parameter in session
aufgezeichnet werden, und wann immer der Benutzer eine Ressource auf der Seite anfordert, wird dies human = 1
sein. Wenn die Schnittstelle den Bestätigungscode sendet, nehmen Sie den Parameter human
heraus und prüfen Sie, welchen Wert er hat. Für einen normalen Benutzer sollte der Wert human
größer als ein bestimmter Wert sein (z. B. 5
). ist weniger als nur der Pinsel. (Das für 0
ist definitiv ein Pinsel)
Was ich gesagt habe, ist relativ einfach: Sie können die Intervalle zwischen mehreren Anfragen, die Bewegungsbahn der Maus vor dem Klicken auf die Anmelde- oder Registrierungsschaltfläche, den Zeitpunkt, zu dem die Maus gedrückt und geschlossen wird, usw. aufzeichnen. analysieren.
Es wäre großartig, wenn Sie ein reCAPTCHA wie das von Google zitieren oder kopieren könnten – das Personen oder Maschinen mit nur einem Klick automatisch identifiziert.
Wie New Wolf Microwave~ Nur wenn Benutzername und Passwort vorhanden sind, wird das Bestätigungspferd gesendet.
Das Problem besteht darin, dass die Funktion zum Anmelden über den Mobiltelefon-Verifizierungscode definitiv kein Passwort hinzufügen kann. Sie können das registrierte Passwort beiläufig eingeben, es bedeutet nicht viel
@locatejoe
Anstatt das Passwort anzuzeigen, werden Benutzername und Passwort als MD5-Werte übernommen, zusammengefügt, gehasht und einem Filter ähnlich wie BloomFilter zugeordnet. Wenn
bloomFilter 不存在
zurückgibt, wird das Verifizierungspferd nicht gesendet.
bloomFilter nimmt nicht viel Platz ein und ist sehr schnell.
Dieses Problem ist schon einmal aufgetreten
Mehr als 20.000 Nachrichten wurden in 2 Tagen hochgeladen
Lösung:
1. Grafischen Bestätigungscode hinzufügen
2. Bestimmen Sie, dass dieselbe IP und dasselbe Mobiltelefon nur 3 Nachrichten in einem Zeitraum senden können (obwohl dies nicht freundlich ist)
3. Bestimmen Sie die Sendezeit für Textnachrichten Innerhalb von 30 Minuten ist es immer noch dasselbe. Eine Mobiltelefon- und IP-Adresse wird nicht gesendet
Jedenfalls gibt es viele Möglichkeiten. Probieren Sie es einfach aus
Wenn es sich um eine andere IP- und Mobiltelefonnummer handelt, können Sie den grafischen Bestätigungscode hinzufügen. . .
Fügen Sie einen grafischen Bestätigungscode hinzu und achten Sie darauf, dass die Schriftfarbe nicht zu einfarbig ist.
Nachdem eine Textnachricht gesendet wurde, muss es ein Intervall geben, das vom Front-End-Cookie beurteilt und separat in PHP gespeichert wird
Die Schnittstelle muss die angeforderte IP-Adresse und Mobiltelefonnummer ermitteln. Das Zeitintervall vom letzten Mal ist zu kurz und das Senden ist nicht zulässig