Security: verwijder hardcoded wachtwoord, voeg random-wachtwoord-generator toe bij eerste installatie

This commit is contained in:
2026-08-27 08:57:05 +00:00
parent 6485f693dc
commit 74612aefbb
55 changed files with 6019 additions and 876 deletions
+35 -1
View File
@@ -1,7 +1,11 @@
#!/usr/bin/env php
<?php
/**
* CodePress CMS — Admin wachtwoord reset CLI
* CodePress CMS — Admin wachtwoord reset CLI.
*
* Reset het wachtwoord van een admin-gebruiker via de command line. Genereert
* een random wachtwoord wanneer er geen wordt meegegeven en wist tevens de
* brute-force lockout voor de gebruiker, zodat direct inloggen weer mogelijk is.
*
* Gebruik:
* php cli/reset-admin-password.php [gebruikersnaam] [nieuw_wachtwoord]
@@ -12,8 +16,16 @@
* Voorbeelden:
* php cli/reset-admin-password.php admin
* php cli/reset-admin-password.php admin MijnNieuweWachtwoord123
*
* @since 2.6.4
* @package CodePress
*/
/**
* CLI-only guard: dit script mag alleen via de CLI uitgevoerd worden.
*
* @since 2.6.4
*/
if (php_sapi_name() !== 'cli') {
fwrite(STDERR, "Dit script kan alleen via de CLI uitgevoerd worden.\n");
exit(1);
@@ -24,6 +36,11 @@ require_once $rootDir . '/admin/src/AdminAuth.php';
$appConfig = require $rootDir . '/admin/config/app.php';
/**
* Argumenten parsen en gebruik tonen bij ontbrekende gebruikersnaam.
*
* @since 2.6.4
*/
// Argumenten parsen
$username = $argv[1] ?? '';
$password = $argv[2] ?? '';
@@ -39,6 +56,11 @@ if ($username === '') {
exit(1);
}
/**
* AdminAuth aanmaken en controleren of de gebruiker bestaat.
*
* @since 2.6.4
*/
// AdminAuth aanmaken (zonder sessie requirements)
$auth = new AdminAuth($appConfig);
@@ -50,6 +72,11 @@ if (!isset($users[$username])) {
exit(1);
}
/**
* Wachtwoord genereren indien niet expliciet opgegeven.
*
* @since 2.6.4
*/
// Wachtwoord genereren als niet opgegeven
if ($password === '') {
$password = bin2hex(random_bytes(12));
@@ -58,6 +85,13 @@ if ($password === '') {
$generated = false;
}
/**
* Wachtwoord wijzigen en brute-force lockout wissen.
*
* Bij een mislukte wachtwoordwijziging wordt met exit(1) afgesloten.
*
* @since 2.6.4
*/
// Wachtwoord wijzigen
$result = $auth->changePassword($username, $password);
if (!$result['success']) {