Sicherheit: Erkennung des lokalen Netzes ueber konfigurierte Netze
isLocal() hielt jede Adresse aus 192.168.147.* fuer lokal. Das ist das
Docker-Netz auf dem NAS: Anfragen ueber den Docker- oder einen Reverse
Proxy tragen dessen Adresse und waeren damit als lokal durchgegangen
(Passwort-Login und Passkey-Freigabe von aussen). Der IPv6-Vergleich per
explode(":") scheiterte ausserdem an komprimierten Adressen.
- lokale Netze stehen als CIDR-Liste $lokale_netze in der externen Config
- ipImNetz() vergleicht IPv4/IPv6 korrekt per inet_pton, inkl. ::ffff:-Form
- Anfragen mit Proxy-Headern gelten nie als lokal
- ohne Konfiguration nur noch dasselbe IPv6-/64 wie der Server, kein IPv4
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -38,6 +38,7 @@ if(!file_put_contents (CONFIG_PATH.CONFIG_FILE,
|
||||
global $openweathermap_appid;
|
||||
global $aeris_client_id;
|
||||
global $aeris_client_secret;
|
||||
global $lokale_netze;
|
||||
|
||||
$instanz = '.var_export(INSTANZ, true).';
|
||||
$dbconn = 0;
|
||||
@@ -60,6 +61,8 @@ if(!file_put_contents (CONFIG_PATH.CONFIG_FILE,
|
||||
$openweathermap_appid = "";
|
||||
$aeris_client_id = "";
|
||||
$aeris_client_secret = "";
|
||||
// Netze, aus denen Passwort-Login erlaubt ist (CIDR). Nie das Docker-Netz!
|
||||
$lokale_netze = array();
|
||||
?>'))
|
||||
{
|
||||
$err= error("Konfiguration konnte nicht geschrieben werden!");
|
||||
|
||||
Reference in New Issue
Block a user