PHP + MySQL - Sicherheitslücken bei der Programmierung?

vom 27.07.2011, 07:39 Uhr

Ich programmiere schon etwas länger in PHP und nutze natürlich auch die Datenbankanbindung via MySQL. Nun haben sich ja immer mehr Angriffsmöglichkeiten herauskristalisiert. Diese existieren eigentlich nur mit einer Datenbank, da dort die "Daten" ja gesichert werden und auch wieder abgerufen werden. Die Änderungen an der Website wären also nicht temporär. Nun kenne ich schon mehrere Sicherheitslücken bzw. Gefahren, die man bei der Programmierung beseitigen sollte, aber bin mir nicht sicher, ob ich "alle" gefährlichen Angriffsmethoden abgesichert habe.

Bekannte Sicherheitslücken, die beseitigt werden müssen:
BruteForce (Login): Bei BruteForce handelt es sich um einen Angriff, wo alle möglichen Kombinationen durchprobiert werden, bis das Ergebnis true liefert, also z.B. der Login erfolgreich war. Dieses Risiko kann man durch eine IP Sperre nach x ungültigen Loginversuchen beseitigen.

RainbowTables: Auf diese Angriffsmöglichkeit bin ich erst vor kurzem gestoßen. So wie ich es verstanden habe, gibt es eine Tabelle mit Hashs (verschlüsselten Passwörtern). Dieses sind dann Begriffe aus dem Wörterbuch. So können sehr schnell die Hashs verglichen werden und auch das Passwort ermittelt werden. Diese Methode soll deutlich schneller sein, als die oben erwähnte BruteForce Methode. Zur Absicherung kann man das Passwort vorher "salzen" (Salt), indem man zum Beispiel einen festen oder dynamischen String anhängt. Das kann dann ein Timestamp sein oder z.B. auch die E-Mail-Adresse, die dann zum Hash hinzugefügt wird. Dieser Salt muss allerdings vor dem "hashen" ergänzt werden.

XSS: Durch XSS (Cross-Site-Scripting) können Nutzer bei ungesicherter Ausgabe JavaScript einschleusen und so z.B. Cookies etc. auslesen und sonstige Scripte von fremden Seiten laden. Durch Funktionen wie htmlspecialchars oder htmlentities kann man die HTML Codes (also auch JavaScript) entschärfen.

» fragender » Beiträge: 195 » Talkpoints: 39,55 » Auszeichnung für 100 Beiträge



BruteForce (Login): Bei BruteForce handelt es sich um einen Angriff, wo alle möglichen Kombinationen durchprobiert werden, bis das Ergebnis true liefert, also z.B. der Login erfolgreich war. Dieses Risiko kann man durch eine IP Sperre nach x ungültigen Loginversuchen beseitigen.


Eine IP-Sperre ist leider kein Schutz gegen BruteForce-Angriffe. BruteForce-Tools arbeiten meist mit Proxy-Listen. Zum einen um die Identität des Angreifers zu verschleiern und zum anderen um eben solche IP-Sperren zu umgehen. Tritt die IP-Sperre in kraft wird einfach automatisch ein neuer Proxy gewählt. Und auch ohne Proxies braucht man einfach eine neue Internet-Verbindung aufbauen und erhält somit eine neue IP-Adresse. Einen wirklichen Schutz bieten nur entsprechende Captchas, welche natürlich nicht zu "leicht" sein sollten, damit sie nicht von einfachen Algorithmen "gelöst" werden können.

Benutzeravatar

» Smoon » Beiträge: 440 » Talkpoints: 2,83 » Auszeichnung für 100 Beiträge


Ähnliche Themen

Weitere interessante Themen

^