From 0494726ca66a7c97cbb511f8960b3aa1dcdb3be9 Mon Sep 17 00:00:00 2001 From: jicho Date: Tue, 16 Nov 2021 15:11:40 +0100 Subject: [PATCH] Client IP behind proxy Function added for IP filtering when the filemanager is hosted behind a web proxy. I've added a function for this to the file, not sure how else to implement it since everything is one file. --- tinyfilemanager.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/tinyfilemanager.php b/tinyfilemanager.php index 3d7052a..699d7a1 100644 --- a/tinyfilemanager.php +++ b/tinyfilemanager.php @@ -236,8 +236,19 @@ if (isset($_GET['logout'])) { } // Validate connection IP -if($ip_ruleset != 'OFF'){ - $clientIp = $_SERVER['REMOTE_ADDR']; +if ($ip_ruleset != 'OFF') { + function getClientIP() { + if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) { + return $_SERVER["HTTP_X_FORWARDED_FOR"]; + }else if (array_key_exists('REMOTE_ADDR', $_SERVER)) { + return $_SERVER['REMOTE_ADDR']; + }else if (array_key_exists('HTTP_CLIENT_IP', $_SERVER)) { + return $_SERVER['HTTP_CLIENT_IP']; + } + return ''; + } + + $clientIp = getClientIP(); $proceed = false;