2012-04-15 5 views
0

Ich versuche, ein kleines Online-Portal, das einige Sicherheitsfehler aufweist, zu überarbeiten. Vor allem aufgrund der Netzwerkarchitektur und Load Balancer kann die Anwendung nicht auf die anfordernde IP-Adresse zugreifen. Normalerweise würde ich darauf bestehen, dass die Anzahl der Anfragen von jeder eindeutigen Adresse beschränkt ist, aber angesichts der wahnsinnigen Bereiche, auf die einige Zugriff haben, ist dies möglicherweise nicht die beste Lösung.Sicherung des HTTPS-Internetportals ohne Zugriff auf die Benutzer-IP-Adresse?

Ich könnte die Anzahl der offenen Verbindungen pro Adresse am Balancer begrenzen, aber es lässt mich immer noch offen für rohe Gewalt.

Offensichtlich zögere ich, Konten nach n Versuchen wegen der Unannehmlichkeiten zu sperren, die jeden legitimen Benutzer verursachen würden, aber es scheint, als eine von sehr wenigen Möglichkeiten, dies zu implementieren.

Kurz der Gedanke, jedem Benutzer eine eindeutige ID zuzuweisen und sie auf eine HTTP-Verbindung zu prellen, um den X-Forwarded-For-Header abzufangen, dann überspringe er sie zu HTTPS, aber es scheint, als wäre es eine schlechte Wahl und MITM konnte dies leicht abfangen, um die Sitzung zu entführen. Wie um alles in der Welt geht ein IT-Typ mit dieser Einschränkung um?

Zusätzlich: Es scheint, dass die verwendeten Load Balancer es ermöglichen, die Anzahl der Verbindungen pro Sekunde zu drosseln. Dies wird helfen, könnte aber immer noch zu zweifelhaften Mengen ungültiger Anfragen führen, die über einen bestimmten Zeitraum hinweg eintreffen. Allerdings scheint die Zeit jetzt ein Faktor zu sein, den wir nutzen können.

Antwort

1

Die Anzahl der Verbindungen pro Zeitintervall, die Sie beschreiben, wird am besten am Load Balancer implementiert. Dies ist eine Erbfunktion dieser Technologie und ist der ideale Ort für die Implementierung. Bei Benutzern, die sich zu oft ohne Erfolg anmelden, müssen Sie das Konto nach einer Reihe von ungültigen Versuchen nicht sperren, sondern etwas wie ein CAPTCHA ausführen, das den Benutzer auffordert, eine schwer zu erkennende Eingabe einzugeben Code. Dies verhindert, dass automatisierte Skripte/Angriffe Brute-Force-Versuche starten, um sich als Benutzer anzumelden.

Ich würde nicht befürworten, jemanden aus einer HTTPS-Verbindung zu einer HTTP-Verbindung aus irgendeinem Grund springen.