проблем със прокси достъп

systems

Registered
Добър ден преди бях със линукс минт 17,3 и php5 този скрипт ме защитаваше от
прокси достъп през браузъра с ип и порт от този вид прокси, но сега съм
с дебиан 9.5 и php5.6 и скрипта въобще неработи някои може ли да помогне или да даде съвет как да го накарам да работи.


PHP:
<?php
if($_SERVER['HTTP_CONNECTION'] != NULL)
{
   echo "no proxy";
}
else
{
   echo "<h1>proxy</h1>";
}
?>

при apache2.4 HTTP_CONNECTION е keep alive on
при php е само keep alive

немога да разбера защо преди работеше а сега не.
 
Ето някои неща които намерих по въпроса.
$_SERVER['HTTP_CONNECTION'] is the value of the HTTP Connection header sent as part of the request by the client. It is not a server setting. You cannot change it and you cannot force the client to send another value in that header. It's up to the client.
Use the following 2 solutions in PHP to detect proxies.
Мethode 1 = quick but does not work with anonymous proxies.
PHP:
$proxy_headers = array(
        'HTTP_VIA',
        'HTTP_X_FORWARDED_FOR',
        'HTTP_FORWARDED_FOR',
        'HTTP_X_FORWARDED',
        'HTTP_FORWARDED',
        'HTTP_CLIENT_IP',
        'HTTP_FORWARDED_FOR_IP',
        'VIA',
        'X_FORWARDED_FOR',
        'FORWARDED_FOR',
        'X_FORWARDED',
        'FORWARDED',
        'CLIENT_IP',
        'FORWARDED_FOR_IP',
        'HTTP_PROXY_CONNECTION'
    );
    foreach($proxy_headers as $x){
        if (isset($_SERVER[$x])) die("You are using a proxy!");
    }

Methode 2 = portscan back to the origin IP at the normal proxy ports used.

PHP:
$ports = array(8080,80,81,1080,6588,8000,3128,553,554,4480);
    foreach($ports as $port) {
         if (@fsockopen($_SERVER['REMOTE_ADDR'], $port, $errno, $errstr, 30)) {
              die("You are using a proxy!");
         }
     }
 
Опитах с тези и други които намерих в интернет и прокситата си зареждат без проблеми няма какво да ги спре.
 
Това е нормално. Тези скриптове засичат само някаква малка част от прокситата. Има платени системи които ползват какво ли не включително black list-ове с адреси, и пак не могат да хванат всички. Ако си намериш някъде из нета такъв лист с адреси на проксита, това е най-добрият начин да спреш достъпа на голяма част от тях.
 
Аз именно този вид проксита искам да блокирам но единствения начин е блокиране по ип адрес каквото и да сложа проксито си зарежда без проблем
тествам с този лист: http://spys.one/free-proxy-list/BG/ и нищо зарежда си без проблем, преди когато използвах минт 17,3 при него този скрипт ги спираше там работеше с php5 сега съм с debian 9.5 с php5.6 всички модули на php5.6 са инсталирани и въпреки това доста скриптове неработят говоря за тези които трябва
да ме защитят от прокси ползвам и fail2ban тои също ги засича и банва но временно


PHP:
<?php

if($_SERVER['HTTP_CONNECTION'] != NULL)

{

   echo "no proxy";

}

else

{

   echo "<h1>proxy</h1>";

}

?>
[/url]
 
Според мен нещо грешиш. Не мисля че със $_SERVER['HTTP_CONNECTION'] можеш да проверяваш дали е прокси или не е. $_SERVER['HTTP_CONNECTION'] има само две стойности KEEPALIVE ON OR OFF, като тука става въпрос за настройка на apache-то. Ето информация за настройката. https://abdussamad.com/archives/169-Apache-optimization:-KeepAlive-On-or-Off.html

П.П. Също така ако не греша $_SERVER['HTTP_CONNECTION'] връща стойността на твоята настройка на апаче-то а не на сървърите които са се свързали със страницата ти.
 

Горе