![]() |
Perl/Mysql Zugriffschutz mit Passwort
Ich hab auf einer Seite einen Passwortschutz für den Adminbereich eingerichtet der folgendermassen aussieht:
Es gibt eine Tabell Users, mit drei Berchtigungsstufen 1 normaler User - darf gar nichts ausser Beiträge im Forum schreiben 2 BereichAdmin - darf nur seinen Bereich verwalten 3 Admin - darf alles Die User und Passwort eingabe erfolg über ein Textfeld. Das handler programm checkt ob der User vorhanden ist und welche berechtigungsstufe er hat. Falls das Login erfolgreich ist werden der Name und das Passwort in einem Cookie gespeichert. vor jedem zugriff auf ein CGI-Programm (Admin) wird das Cookie ausgelesen und die Berechtigungsstufe ermittelt. Je nach Berechtigungsstufe -> User darf oder User darf nicht. Nun meine Frage: Welche sicherheitstechnischen Aspekte sprechen gegen so eine Lösung. In mehreren Forenbeiträgen wurde halt gepostet das eine htaccess lösung auf jeden fall einer perl lösung vorzuziehen ist. Warum? Es befinden sich keine hochsensiblen Daten in der Datenbank, es geht halt nur ums editíeren der Beiträge oder sonstige Eingaben. |
Der einzige Sicherheitsaspekt, der dagegen spricht ist, dass jeder, der Zugang zu einem der Admins hat, einfach nur den Cookie kopieren kann und damit die gleichen Zugangsrechte hat.
Alle anderen Aspekte sind wohl zu Vernachläsigen, weil du ja keinen Bankrechner sichern musst, sondern "nur" ein Forum. Die einzige Möglichkeit die .htaccess Authentifizierung sinvoll zu nutzen ist, wenn der PHP Interpreter als Apache Modul ausgeführ wird. Ich hab allerdings noch nie solche Anwendungen programmiert. mfg c. |
Zutrittsberechtigung mit Cookies
Für deinen Zweck muss ich sagen, ist die Cookie Lösung sicherlich die Beste.
1. weil sie einfach ist 2. weil sie schnell implementiert ist 3. weil sie sicher ist (siehe unten) Ich würde nur empfehlen die daten nicht einfach so inns Cookie zu schreiben (macht man einfach nicht!) Empfähle dir stattdessen den usernamen unverschlüsselt, das Passwort aber mit md5 verschlüsselt zu speichern. --> ist genauso einfach zu überprüfen wie ohne verschlüsselung, zeigt aber vielmehr stil und professionalität. :ms: |
Ja, da kann man das Passwort nicht so leicht auslesen. Das Problem ist allerdings wenn jemand win98 oder winME hat. Da sind die Cookies ja quasi "öffentlich". Es ist zwar nicht möglich, das Passwort auszulesen (zumindest nicht ohne Hilfsmittel) allerdings würde es reichen, den Cookie zu kopieren.
mfg c. |
cookie kopieren...
tja das sollte kein Problem darstellen!
einfach ins cookie die ipadresse mitreinnehmen. Wird in der Praxis nahezu überall gemacht (im professionellen Rahmen) Das Cookie setzt sich dann meist aus folgenden Dingen zusammen: username (verschlüsselung nicht nötig) passwort (md5 verschlüsselung empfohlen) ipadr (md5 verschlüsselung empfohlen) dann einfach die ip von der das script aufgerufen wurde mit md5 verschlüsseln und mit der gespeicherten ip vergleichen. wenn sie gleich sind is ja alles ok! :ms: |
passwort auslesen...
außerdem:
Sicherlich kann man das verschlüsselte Passwort aus dem Cookie lesen, aber man kann es nicht entschlüsseln (md5 ist irreversibel). Man kann nur verschiedene Passwörter mit md5 verschlüsseln und schauen ob eins die selbe zeichenfolge ergibt. Und spätestens nach ablaufzeit des Cookies muss man das Passwort eingeben und dann steht man an. Außerdem kann man die Möglichkeit des decodierens über codieren von anderen Passwörtern eliminieren, wenn man statt md5 ein anderes Verschlüsselungsverfahren verwendet und mit einem eigenen Schlüsselwort verschlüsselt. Außerdem kann man ja vorher die 32bit CRC bilden und die dann in der Verschlüsselung dazugeben .... Man kann ja sooooooo gemein sein wenns ums verschlüsseln geht! |
Jede Übertragng eines Passwortes (verschlüsselt oder unverschlüsselt) ist ein Sicherheitsrisiko.
Warum nicht einfach eine generische Session-ID als Cookie setzen, über welche die User-Session identifiziert wird. Diese mit einem Ablaufdatum versehen - viola! |
sessions
Sorry Chef,
Sessions sind so ziemlich das einzige, mit dem ich mich noch nicht auseinandergesetzt hab. Aber ich bin ja noch jung und dynamisch und kann ja noch viel lernen! |
Session-IDs sind zwar eine saubere und schöne, aber leider auch eine sehr aufwendige Lösung.
Am einfachsten ist wirklich ein Cookie mit dem Kennwort und der IP des Hosts zu speichern und zu überprüfen. Dann kannst schon mal nicht kopiert werden ;) lg |
Und wenn mehrere Personen über eine IP kommen (proxy)? ;)
|
| Alle Zeitangaben in WEZ +2. Es ist jetzt 08:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag