Skocz do zawartości
Zaloguj się, aby obserwować  
Jarosław Szmańda

Wycięcie ruchu - proxy

Polecane posty

Cześć,

 

Czy macie jakiś pomysł jak wyciąć cały ruch przechodzący przez proxy do serwera? Użytkownik próbuje wejść na stronę zaparkowaną na serwerze - ten sprawdza skąd wchodzi i blokuje go.

 

Macie jakiś pomysł?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeśli chodzi o blokowanie wszystkich użytkowników wchodzących przez jakiekolwiek proxy, jeśli używasz np nginxa, można napisać do niego moduł, który będzie sprawdzał odpowiednie nagłówki HTTP (np. HTTP_X_FORWARDED_FOR) - jeśli okaże się, że user korzysta z proxy (niestety na niektóre proxy ta metoda nie będzie działać - te szczególnie anonimowe, które nie przekazują nagłówków takich jak powyższy), można odesłać mu jakiś ładny błąd albo przekierować na inną stronę.

 

Niestety ta metoda wymaga napisania modułu, chyba, że taki już jest, ale nic mi o nim nie wiadomo ;-)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Niestety ta metoda wymaga napisania modułu, chyba, że taki już jest, ale nic mi o nim nie wiadomo ;-)

Do Apache jest... zwie się mod_rewrite ;p

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Można jaśniej? :)

 

RewriteEngine on

RewriteCond %{HTTP:VIA} !^$ [OR]

RewriteCond %{HTTP:FORWARDED} !^$ [OR]

RewriteCond %{HTTP:USERAGENT_VIA} !^$ [OR]

RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR]

RewriteCond %{HTTP:PROXY_CONNECTION} !^$ [OR]

RewriteCond %{HTTP:XPROXY_CONNECTION} !^$ [OR]

RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]

RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$

RewriteRule ^(.*)$ - [F]

 

O tym mowa?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@Fiercio

 

przyzwyczaiłem się do nginxa i dla niego chyba nie było możliwości sprawdzenia nagłówków w "domyślnej" wersji, tzn bez wstawek perlowych czy dodatkowych modułów. w Apache da się to oczywiście zrealizować dzięki mod_rewrite.

 

@JarekMk

 

tak, o tym mowa.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Jeśli chodzi o blokowanie wszystkich użytkowników wchodzących przez jakiekolwiek proxy, jeśli używasz np nginxa, można napisać do niego moduł, który będzie sprawdzał odpowiednie nagłówki HTTP (np. HTTP_X_FORWARDED_FOR) - jeśli okaże się, że user korzysta z proxy (niestety na niektóre proxy ta metoda nie będzie działać - te szczególnie anonimowe, które nie przekazują nagłówków takich jak powyższy), można odesłać mu jakiś ładny błąd albo przekierować na inną stronę.

 

Niestety ta metoda wymaga napisania modułu, chyba, że taki już jest, ale nic mi o nim nie wiadomo ;-)

Ta metoda wymaga jedynie znajomości konfiguracji nginx'a, a nie żadnych modułów :):

server {
   if ($http_x_forwarded_for) {
       return 403;
   }
   (...)
}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
p - niby tak, ale rozchodzi się konkretnie o Apache :)
Tyle, że to już wcześniej testowałem i działa...
To działa czy nie działa? Bo wygląda OK.

 

Poza tym jeżeli masz dostępne w/w nagłówki, to jaki sens jest wycinania tych ludzi?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
p - błąd w pisowni... Oczywiście nie działa.

Powód? Trole - nie da nic wycięcie ich IP - wracają przez różne proxy..

No ale jeżeli wchodzą przez nie-anonimizujące proxy, to masz ich prawdziwe IP i możesz ich nadal wyciąć na poziomie skryptu. Jeżeli wchodzą przez anonimizujące proxy, to tych nagłówków i tak nie ma i w taki sposób nie wytniesz :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×