################################################################# ## Mod Title: Invalid_session Fix ## Mod Author: Logeen [www.kurshtml.edu.pl] ## Mod Version: 1.0.0 ## Mod description: W wiekszosci przypadkow poprawia blad typu "Invalid_session", ktory moze wyswietlac sie moderatorom np. przy probie przenoszenia tematow do innych dzialow. Blad pojawia sie, jezeli siec lokalna uzytkownika jest tak skonfigurowana, ze korzysta z serwera proxy, ktory przy pierwszym wejsciu na strone, wysyla inny IP, niz adres uzytkownika. Przy okazji dodana jest funkcja rozpoznawania adresu IP zza proxy, przy czym nie dotyczy to adresow z puli prywatnej. Warto dodac, ze modyfikacja ta nie obniza zabezpieczen forum, czego nie mozna powiedziec o innych propozycjach rozwiazania tego problemu, poprzez usuniecie kontroli zgodnosci IP. Podziekowania dla Fanatyka__ za wymuszenia na mnie decyzji o zajeciu sie ta sprawa ;-) ## Installation Level: Easy ## Installation Time: 1 Minute ## ## Files To Edit: 1 ## common.php ## ################################################################# # #-----[ OPEN ]------------------------------------------ # common.php # #-----[ FIND ]------------------------------------------ # $user_ip = encode_ip($client_ip); # #-----[ BEFORE, ADD ]------------------------------------------ # $client_ip_proxy = ( !empty($HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']) ) ? $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] : ( ( !empty($HTTP_ENV_VARS['HTTP_X_FORWARDED_FOR']) ) ? $HTTP_ENV_VARS['HTTP_X_FORWARDED_FOR'] : getenv('HTTP_X_FORWARDED_FOR') ); if (!empty($client_ip_proxy) && ereg('[^0-9]*([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})[^0-9]*', $client_ip_proxy, $client_ip_proxy_regs)) { $client_ip_proxy = $client_ip_proxy_regs[1]; if ($client_ip_proxy != '0.0.0.0' && $client_ip_proxy != '127.0.0.1' && (strnatcmp($client_ip_proxy, '10.0.0.0') < 0 || strnatcmp($client_ip_proxy, '10.255.255.255') > 0) && (strnatcmp($client_ip_proxy, '172.16.0.0') < 0 || strnatcmp($client_ip_proxy, '172.31.255.255') > 0) && (strnatcmp($client_ip_proxy, '192.168.0.0') < 0 || strnatcmp($client_ip_proxy, '192.168.255.255') > 0)) $client_ip = $client_ip_proxy; } # #-----[ SAVE/CLOSE ALL FILES ]-------------------------- # #EoM