diff options
Diffstat (limited to 'modules-available/webinterface/page.inc.php')
| -rw-r--r-- | modules-available/webinterface/page.inc.php | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/modules-available/webinterface/page.inc.php b/modules-available/webinterface/page.inc.php index 1b082000..7bad721b 100644 --- a/modules-available/webinterface/page.inc.php +++ b/modules-available/webinterface/page.inc.php @@ -101,7 +101,7 @@ class Page_WebInterface extends Page $ip = trim($line[0]); $ipNormal = IpUtil::normalizeIp($ip); if ($ipNormal !== null) { - $cleaned[$ip] = $line[1] ?? ''; + $cleaned[$ipNormal] = $line[1] ?? ''; } else { Message::addWarning('invalid-proxy-ip', $ip); } @@ -205,7 +205,7 @@ class Page_WebInterface extends Page // // Password fields // - $data = array(); + $data = []; if (Property::getPasswordFieldType() === 'text') { $data['selected_show'] = 'checked'; } else { @@ -224,7 +224,15 @@ class Page_WebInterface extends Page } $list .= "\r\n"; } - $data = ['trustedProxiesList' => $list]; + $chain = preg_split('/\s*,\s*/', $_SERVER['HTTP_X_FORWARDED_FOR'] ?? '', -1, PREG_SPLIT_NO_EMPTY); + $chain[] = $_SERVER['REMOTE_ADDR'] ?? ''; + $client = array_shift($chain); + $data = [ + 'trustedProxiesList' => $list, + 'chain' => $chain, + 'client' => $client, + 'server' => $_SERVER['SERVER_ADDR'] ?? '127.0.0.1', + ]; Permission::addGlobalTags($data['perms'], null, ['edit.trusted-proxies']); Render::addTemplate('trusted-proxies', $data); // |
