Forenindex » Programmierung/Entwicklung » PHP und MySQL » Diskussion: Sicherheit von Passwortabfragen

Diskussion: Sicherheit von Passwortabfragen

flobaer
Beiträge gesamt: 317

4. Mai 2007, 09:33
Bewertung:

gelesen: 5325

Beitrag als Lesezeichen
Hallo zusammen,

ich habe bei verschiedenen Projekten unterschiedliche Zugangskontrollen im Einsatz. Auf der einen Seite einen Schutz der Seiten durch Anmeldung über PHP (die Benutzerinformationen sind in einer Datenbank hinterlegt). Bei erfolgreicher Anmeldung wird eine Session angelegt, in der die wichtigsten Benutzerinfos (einzelne Rechte, E-Mail-Adresse etc.) sowie der Status "logged_in" gespeichert wird. Dieser Status wird auf jeder Seite abgefragt und bei fehlen dieses Wertes wird auf die Login-Seite weitergeleitet.
Ein anderes System habe ich auf einer Seite im Einsatz, wo ich nur den Benutzernamen brauche und alle Benutzer die selben Rechte haben. Dort habe ich den Bereich mit .htaccess geschützt.

Ich frage mich nun, was die sicherere Lösung ist und ob eine Kombination sicher wäre. Ich könnte doch den Bereich mit .htaccess schützen, dann den Benutzernamen des erfolgreich angemeldeten Benutzers auslesen und seine Benutzerrechte und -informationen bei Bedarf aus einer Datenbank auslesen.

Ist das irgendwie sicherer, unsicherer, sinvolll oder sinnlos?

Ich hoffe ihr konntet mir folgen und freue mich auf eure Meinungen.

Viele Grüße
Florian

Diskussion: Sicherheit von Passwortabfragen

SabineP
Beiträge gesamt: 7586

4. Mai 2007, 13:01
Bewertung:

gelesen: 5286

Beitrag als Lesezeichen
Hallo Florian,

wenn Du wirklich Sicherheit möchtest, dann verwende die Zugangskontrolle per .htaccess in Verbindung mit einem SSL-Zertifikat.

In Verbindung mit dem Apache-Modul mod_auth_mysql können die Zugangsdaten
auch in der MYSQL-Datenbank stehen anstatt in der .htpasswd

Gruß Sabine

Diskussion: Sicherheit von Passwortabfragen

flobaer
Beiträge gesamt: 317

4. Mai 2007, 13:19
Bewertung:

gelesen: 5282

Beitrag als Lesezeichen
Hallo Sabine,

wenn ich das richtig verstehe, gibt es dort eine vorgegebene MySQL Datenbank, in der alle User für den gesamten Server drin stehen. Außerdem habe ich keine Möglichkeit weitere Informationen mit zu speichern, oder?
Letztendlich muss man dann auch in der Lage sein, das Modul zu installieren, sofern es nicht vorhanden ist, was bei den meisten Providern aber nicht geht.

Wenn ich dich weiterhin richtig verstehe, ist eine Absicherung mit .htaccess sicherer als eine über ein PHP Formular?

Wie sicher schätzt du denn von mir beschriebenen Weg ein den über .htaccess eingeloggten Benutzer abzufragen und anhand des Benutzernamens die weiteren Infos aus eine Datenbank zu holen?

Viele Grüße
Florian

Diskussion: Sicherheit von Passwortabfragen

ganesh
Beiträge gesamt: 1981

4. Mai 2007, 15:20
Bewertung:

gelesen: 5264

Beitrag als Lesezeichen
Wenn du grösstmögliche Sicherheit willst, kommst du um ein SSL-Zertifikat kaum herum.

Ich hoffe doch sehr, dass du nicht das Passwort als plain text in der Datenbank ablegst, oder? Immer nur einen "hash" String speichern (SHA1 oder ähnliches), dann ists irreversibel.

Diskussion: Sicherheit von Passwortabfragen

SabineP
Beiträge gesamt: 7586

4. Mai 2007, 15:43
Bewertung:

gelesen: 5258

Beitrag als Lesezeichen
>> wenn ich das richtig verstehe, gibt es dort eine vorgegebene MySQL Datenbank,
>> in der alle User für den gesamten Server drin stehen.
>> Außerdem habe ich keine Möglichkeit weitere Informationen mit zu speichern, oder?

Du kannst alles frei definieren, es ist da nichts festgelegt.
Und Du kannst in der Tabelle mit den Benutzernamen und Paßwörtern
auch noch weitere Informationen speichern.


>> Letztendlich muss man dann auch in der Lage sein, das Modul zu installieren.

Am besten den Provider fragen, ohne root-Zugang läßt sich das Modul leider nicht installieren.
Besonders bei sehr vielen Benutzern ist es sehr angenehm für die Performance.


>> Wie sicher schätzt du denn von mir beschriebenen Weg ein den über .htaccess
>> eingeloggten Benutzer abzufragen und anhand des Benutzernamens
>> die weiteren Infos aus eine Datenbank zu holen?

Vom Browser zum Webserver wird der Benutzername und das Paßwort nur base64 codiert.
Innerhalb dieser Übertragung besteht die größte Unsicherheit, deshalb sollte man hier ein SSL-Zertifikat verwenden.
Gruß Sabine

(Dieser Beitrag wurde von SabineP am 4. Mai 2007, 15:44 geändert)