Frage

Bei einem einfachen Anmeldesystem (Register und Anmeldung), welche der beiden Auswahlmöglichkeiten ist sicherer:

  • Verwenden von HTAccess- und HTPassWD -Dateien zum Speichern und Authentifizieren von Benutzern
  • Verwenden Sie PHP zu Crud und MySQL (oder einer anderen Datenbank), um die Informationen zu speichern

Die Benutzerinformationen bestehen nur aus Benutzername-Password.

Natürlich wird Best-Case für beide Optionen angenommen: MySQL-Injektionen werden berücksichtigt. Kennwort ist MD5/SHA1/MD5+SHA1/Alle anderen Mittel verschlüsselt usw.

Falls Sie sich fragen, wird PHP im ersten Fall Benutzeranmeldeinformationen zur HTPasswd -Datei hinzufügen. (sehen Dies Frage für eine Beispielimplementierung.)

War es hilfreich?

Lösung

Ich würde immer das Anmeldeformular sagen (mit dem ich davon ausgehe, dass Sie eine Standard-Sitzungsauthentifizierung meinen).

  • .htaccess Die Authentifizierung überträgt das Passwort auf jeder Anfrage (natürlich würde SSL hier helfen)

  • .htaccess Die Authentifizierung hat in Apache standardmäßig keine Rate-Grenz- / Brute-Force-Schutz

  • Anmelden aus .htaccess Authentifizierung ist ein Hündin

Andere Tipps

Es gibt so ziemlich keinen Unterschied zwischen den beiden Wegen in der Flugsicherheit. Aber Pekkas Bedenken sind alle gültig. Wenn Sie nur HTTP Basic AUTH (dh die Popup -Box) im Gegensatz zu einem Anmeldeformular verwenden möchten, können Sie dies über PHP tun. durch Suche nach $_SERVER['PHP_AUTH_USER'] Und wenn Sie es nicht finden, senden Sie eine 401 -Antwort zurück, z. B.:

    if (!isset($_SERVER['PHP_AUTH_USER'])) {
            header('WWW-Authenticate: Basic realm="MY REALM"');
            header('HTTP/1.0 401 Unauthorized');
            echo 'Please Contact us if you are having problems logging in';
            exit;
    } else {
            //not their first time through
            //check their username and password here
            $username = trim($_SERVER['PHP_AUTH_USER']);
            $password = trim($_SERVER['PHP_AUTH_PW']);
            //do login
    }

Auf diese Weise können Sie die Erkennung von Ratenlimit-/Brute -Kraft -Erkennung durchführen. Legen Sie eine Sitzung fest, damit die Passwörter mit jeder Anfrage nicht gesendet werden und die Protokollierung des Benutzers und die Verfolgung viel einfacher erleichtert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top