PHP-Code in htaccess/03_step/schutz/login_generator.txt
<?php
/*
Dieses Script schreibt eine .htaccess- und eine dazugehörige .htpasswd-Datei.
Platziere es in dem Verzeichnis, dass du schützen möchtest, und rufe es auf.
8ung:
- schon bestehende Dateien werden überschrieben!
- aus Sicherheitsgründen solltest du dieses File nach dem Einsatz löschen,
es enthält die unverschlüsselten Passwörter!
*/
// Array: Benutzername => Passwort
$user = ['peter' => '1234', 'maria' => '4321', 'gustav' => '9876'];
// Art der Authentifizierung ('Basic' oder 'Digest')
$authType = 'Basic';
// Text im Login-Fenster
$loginText = 'Anmeldung Administrationsbereich';
// Hinweis: Die wenigsten Browser werden diesen Dialog anzeigen!
// Code für .htaccess-File aufbauen und File schreiben
function write_htaccess_File($authType, $loginText, $user) {
// Pfad für das .pwpasswd-File bestimmen
// Falls es in einem anderen Verzeichnis zu liegen kommt, muss hier angepasst werden
$path_for_htpasswd_file = dirname(__FILE__);
// Code aufbauen
$code = 'AuthType ' .$authType. "\n";
$code .= 'AuthName "' . $loginText . '"' . "\n";
$code .= 'AuthUserFile ' . $path_for_htpasswd_file . '/.htpasswd' . "\n";
$code .= 'require user ';
$userNames = array_keys($user);
foreach ($userNames as $out) {
$code .= $out.' ';
}
$code . "\n";
// .htaccess-File schreiben
$handle = fopen(".htaccess","w");
fwrite($handle,$code);
fclose($handle);
echo "Habe das .htaccess-File geschrieben<br>";
}
// Code für .htpasswd-File aufbauen und File schreiben
function write_htpasswd_File($user) {
// Code aufbauen
$code = '';
foreach($user as $key => $value) {
// Hier keine MD5-Hashes mehr einsetzen!
$code .= $key.':'.password_hash($value, PASSWORD_DEFAULT)."\n";
}
// .htpasswd-File schreiben
$handle = fopen('.htpasswd',"w");
fwrite($handle,$code);
fclose($handle);
echo "Habe das .htpasswd-File geschrieben";
}
// Funktionen aufrufen
write_htaccess_File($authType, $loginText, $user);
write_htpasswd_File($user);
// mit der nächsten Zeile lässt sich dieses Script wieder automatisch löschen
// unlink("login_generator.php");
?>