Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrypt blokujący wejścia do strony przez proxy
karolski
post
Post #1





Grupa: Zarejestrowani
Postów: 199
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Czymiasto

Ostrzeżenie: (0%)
-----


Mam problem jak napisać skrypt który blokuje dostęp do strony przez proxy i zeby jeszcze jak napisać skrypt który blokuje wszystki IP bez niektórych IP questionmark.gifquestionmark.gif


--------------------
Pozdrawiam Karolski
Go to the top of the page
+Quote Post
Speedy
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


Cytat
jak napisać skrypt który blokuje wszystki IP bez niektórych IP questionmark.gifquestionmark.gif


A tak:

  1. <?php
  2. $ip=file(&#092;"ip.txt\"); // plik \"ip.txt\" , to plik z dozwolonymi IP w oddzielnych liniach
  3. foreach($ip as $v) {
  4. if(trim($v)==$REMOTE_ADDR) {
  5.  
  6. echo &#092;"Zawartosc strony\";
  7.  
  8. }else {
  9.  
  10. echo &#092;"Dostęp zabroniony\";
  11.  
  12.  }
  13. }
  14.  
  15. ?>


Cytat
jak napisać skrypt który blokuje dostęp do strony przez proxy


Możesz np. zabanować IP z odpowiednich proxów (ale wtedy, ktoś sobie może zmienić proxy tongue.gif ) . To raczej utopijna idea...

Pozdrawiam.

cya.

Ten post edytował Speedy 20.02.2005, 18:10:38


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Niestety algorytm jest zly: jesli pierwszy adres z pliku bedzie rozny od IP usera to zostanie on zablokowany.

  1. <?php
  2. // (...)
  3. $access = FALSE;
  4. foreach( $ip as $v )
  5. {
  6.  if ( trim( $v ) == $_SERVER[ 'REMOTE_ADDR' ] )
  7.  {
  8. $access = TRUE;
  9. break;
  10.  }
  11. }
  12.  
  13. if ( $access )
  14. {
  15.  // wpusc
  16. }
  17. else
  18. {
  19. // blokuj
  20. }
  21.  
  22. ?>


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
karolski
post
Post #4





Grupa: Zarejestrowani
Postów: 199
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Czymiasto

Ostrzeżenie: (0%)
-----


dzięki bardzo smile.gif to dr_bonzo dziła super, teraz myśle nad zablokowaniem dostepu przy uzyciu proxy jak cos znajde to sie tym podziele tongue.gif


--------------------
Pozdrawiam Karolski
Go to the top of the page
+Quote Post
crash
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Jeśli proxy nie ukrywa swojej obecności to łatwo je wykryć. Przejżyj wysłane nagłówki.


--------------------
Go to the top of the page
+Quote Post
karolski
post
Post #6





Grupa: Zarejestrowani
Postów: 199
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Czymiasto

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. function get_remote_addr () {
  4.   if(isset($_SERVER[&#092;"REMOTE_ADDR\"])) {
  5.     return $_SERVER[&#092;"REMOTE_ADDR\"];
  6.   } elseif (isset($HTTP_SERVER_VARS[&#092;"REMOTE_ADDR\"])) {
  7.     return $HTTP_SERVER_VARS[&#092;"REMOTE_ADDR\"];
  8.   } elseif (getenv(&#092;"REMOTE_ADDR\")) {
  9.     return getenv(&#092;"REMOTE_ADDR\");
  10.   } else {
  11.     return &#092;"none\";
  12.   }
  13. }
  14.  
  15.  
  16. function get_x_forwarded () {
  17.   if(isset($_SERVER[&#092;"HTTP_X_FORWARDED_FOR\"])) {
  18.     return $_SERVER[&#092;"HTTP_X_FORWARDED_FOR\"];
  19.   } elseif (isset($HTTP_SERVER_VARS[&#092;"HTTP_X_FORWARDED_FOR\"])) {
  20.     return $HTTP_SERVER_VARS[&#092;"HTTP_X_FORWARDED_FOR\"];
  21.   } elseif (getenv(&#092;"HTTP_X_FORWARDED_FOR\")) {
  22.     return getenv(&#092;"HTTP_X_FORWARDED_FOR\");
  23.   } else {
  24.     return &#092;"none\";
  25.   }
  26. }
  27.  
  28.  
  29. function get_ip() {
  30.   $client_ip = get_client_ip();
  31.   $x_forwarded = get_x_forwarded();
  32.   $remote_addr = get_remote_addr();
  33.   if (isset($client_ip) && !eregi(&#092;"none\", $client_ip) && !eregi(\"unknown\", $client_ip)) {
  34.     return $client_ip;
  35.   } elseif (isset($x_forwarded) && !eregi(&#092;"none\", $x_forwarded) && !eregi(\"unknown\", $x_forwarded)) {
  36.     return $x_forwarded;
  37.   } elseif (isset($remote_addr) && !eregi(&#092;"none\", $remote_addr) && !eregi(\"unknown\", $remote_addr)) {
  38.     return $remote_addr;
  39.   } else {
  40.     return &#092;"none\";
  41.   }
  42. }
  43.  
  44. function get_client_ip () {
  45.   if(isset($_SERVER[&#092;"HTTP_CLIENT_IP\"])) {
  46.     return $_SERVER[&#092;"HTTP_CLIENT_IP\"];
  47.   } elseif (isset($HTTP_SERVER_VARS[&#092;"HTTP_CLIENT_IP\"])) {
  48.     return $HTTP_SERVER_VARS[&#092;"HTTP_CLIENT_IP\"];
  49.   } elseif (getenv(&#092;"HTTP_CLIENT_IP\")) {
  50.     return getenv(&#092;"HTTP_CLIENT_IP\");
  51.   } else {
  52.     return &#092;"none\";
  53.   }
  54. }
  55.  
  56.  
  57.  
  58.   $proxy0 = get_ip();
  59.   $proxy1 = get_client_ip();
  60.   $proxy2 = get_x_forwarded();
  61.   $proxy_host = @getHostByAddr($proxy0);
  62.   if($proxy1 != &#092;"none\" OR $proxy2 != \"none\" OR stristr($proxy_host,\"proxy\")) {
  63.     $display_page = &#092;"Masz proxy wyjdz\";
  64.     die($display_page);
  65.   } else {
  66.         print 'Strona tongue.gif';
  67.                 }
  68.  
  69.  
  70. ?>
Wg mnie to powinno działać ale nie mam jak przetestować jeżeli ktoś ma proxy to niech wejdzie tutaj: http://karol.ka.funpic.de/proxy.php powinno mu się wyświtlić : Masz proxy wyjdz


EDIT:


SKRYPT DZIAŁA wykrywa bez problemu proxy smile.gif

Ten post edytował karolski 20.02.2005, 20:16:13


--------------------
Pozdrawiam Karolski
Go to the top of the page
+Quote Post
mund
post
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.10.2002

Ostrzeżenie: (0%)
-----


a ja przechodzę przez proxy i mnie nie wykryło aarambo.gif

Ten post edytował mund 21.02.2005, 12:15:48
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 03:30