Moin!
Ich habe den Zugang zu Internetseiten mit einem Passwortschutz versehen. Das Passwort konnte man sich selbst erstellen.
Mit Hilfe des folgenden Codes oder auf einem anderen Weg?
Benutzernamen:
<input name="benutzername" value="<?php echo htmlspecialchars(stripslashes($benutzername)); ?>" maxlength="10">
Passwort:
<input name="passwort" type="password" value="<?php echo htmlspecialchars(stripslashes($passwort)); ?>" maxlength="10"><input type="submit" name="submit" value="Einloggen">
>
> Wie sicher ist das ?
Auf die Ausgabe des Passwortes solltest du verzichten: Im Formularfeld stehen zwar nur Sternchen, allerdings steht das Passwort im Klartext im HTML-Code der Seite:
~~~php
$passwort = 'streng geheim';
// Damit ergibt dieser Code
Passwort: <input name="passwort" type="password" value="<?php echo htmlspecialchars(stripslashes($passwort)); ?>" maxlength="10">
// folgende HTML-Ausgabe:
Passwort: <input name="passwort" type="password" value="streng geheim" maxlength="10">
Wer also einen Blick in den HTML-Code wirft, erhält so das Passwort. Dieser Blick kann dabei auch durchaus auf einem Proxy-Server im Internet passieren, verzichte also darauf.
Weiterhin ist dein Formular nicht gegen Cross-Site Scripting geschützt:
$benutzername = '"><strong>gehackt</strong>';
// Damit ergibt dieser Code
Benutzernamen: <input name="benutzername" value="<?php echo htmlspecialchars(stripslashes($benutzername)); ?>" maxlength="10">
// folgende HTML-Ausgabe:
Benutzernamen: <input name="benutzername" value=""><strong>gehackt</strong>" maxlength="10">
Aus diesem Grund möchtest du außerdem die Funktion htmlspecialchars benutzen.
Viele Grüße,
Robert