?
Pille456 schrieb:
Die Passwörter werde ich später natürlich nicht im Klartextformat speichern, aber welche Verschlüsselung etc. ich benutze hab ich mir noch nicht genau überlegt, daher erstmal alles im Klarttext
Keine Verschlüsselung, sondern ein Hash
Denn eine Verschlüsselung arbeitet mit einem Key, mit dem die Passwörter entschlüsselt werden können. Hackt sich nun jemand in dein System ein, wird er - wenn er schon alle Daten aus der Datenbank auslesen kann - vermutlich auch an den Key kommen. I.d.R. nimmt man dafür MD5 oder SHA1 (beide werden nativ sowohl von PHP als auch MySQL unterstützt. Willst du wirklich sicher gehen, nimm einen Algorithmus mit längeren Hashes, z.B. SHA512 oder Whirlpool).
Pille456 schrieb:
Daher Frage eins: Gibt es noch andere Möglichkeiten/ Verbesserungen an dieser Idee, sodass einem z.B. das Klauen der SessionID nichts nützt?
1. Cookiedaten verschlüsseln. So erschwerst du ein Faken der ID, da der Angreifer - wenn er sich selbst eine andere ID geben will - immer noch deinen Serverseitigen Key braucht, um sein Cookie "richtig" zu verschlüsseln.
2. Du kannst ein Ticketsystem implementieren. Bei jedem Zugriff wird ein neuer Code aus einer Folge generiert und im Cookie und Server gespeichert. Beim nächsten Zugriff wird der Wert abgeglichen, und wenn er falsch ist, wird der Zugriff nicht autorisiert. Nachteile: Höhere Serverlast (durch ewiges Neusetzen, Ver- und Entschlüsseln der Cookies und durch das Generieren der Folge) und der "Zurück"-Button in vielen Browsern wird ausgehebelt.
Zum letzten: SQL-Server werden meistens stark unterschätzt, habe ich das Gefühl. Eine Zugriffszahl im Tausenderbereich ist so gut wie nichts für einen MySQL-Server, selbst wenn er nicht auf einem High-End-PC läuft. Da solltest du dir vorerst keine Gedanken machen