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
+36
View File
@@ -1,6 +1,17 @@
#!/usr/bin/env php
<?php
/**
* DB-IP Lite database downloader & binaire converter voor CodePress CMS.
*
* Downloadt de DB-IP Lite country-CSV (gzip) van download.db-ip.com, pakt
* deze uit en zet de IP-ranges om in compacte binaire bestanden voor IPv4
* en IPv6 (met 2-byte country codes), plus een meta.json met bron en
* statistieken. Kan via de CLI of vanuit een admin-handler worden aangeroepen.
*
* @since 2.6.4
* @package CodePress
*/
/**
* DB-IP Lite database downloader & binary converter for CodePress CMS
*/
@@ -9,6 +20,16 @@ if (php_sapi_name() !== 'cli' && (!isset($_SESSION['admin_user']))) {
// Can also be included from admin handler
}
/**
* GeoIP-database bijwerken: downloaden, uitpakken en converteren.
*
* Probeert maximaal drie recente maandelijkse DB-IP Lite releases. Bij
* succes worden ipv4.bin en ipv6.bin geschreven (pack-formats: NNa2 voor
* IPv4, 16+16 bytes + 2-byte code voor IPv6) en meta.json weggeschreven.
*
* @since 2.6.4
* @return array Resultaat-array met keys: success, message en (optioneel) meta.
*/
function updateGeoIPDatabase(): array
{
$baseDir = dirname(__DIR__) . '/admin/storage/geoip';
@@ -55,6 +76,14 @@ function updateGeoIPDatabase(): array
$v4Count = 0;
$v6Count = 0;
/**
* CSV-records omzetten naar binaire IPv4-/IPv6-records.
*
* Elke geldige regel met start-, end-IP en 2-letterige country code wordt
* weggeschreven naar het juiste binaire bestand met bijbehorend pack-formaat.
*
* @since 2.6.4
*/
foreach ($lines as $line) {
$line = trim($line);
if ($line === '' || $line[0] === '#') continue;
@@ -112,6 +141,13 @@ function updateGeoIPDatabase(): array
];
}
/**
* CLI-entrypoint: DB-IP Lite database bijwerken.
*
* Roept updateGeoIPDatabase() aan en print het resultaatbericht.
*
* @since 2.6.4
*/
if (php_sapi_name() === 'cli' && basename(__FILE__) === basename($_SERVER['SCRIPT_FILENAME'])) {
echo "DB-IP Lite database bijwerken...\n";
$res = updateGeoIPDatabase();