![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 21 Dołączył: 10.06.2011 Skąd: Głogów Ostrzeżenie: (0%)
|
Pewnie dużo osób się zastanawiało jak zabezpieczyć się przed proxy. Dzisiaj jakoś mnie natchnienie wzięło i przeszukałem zmienną globalną $_SERVER i znalazłem kilka wpisów które różnią się od normalnego wejścia, a wejścia z proxy.
Kod pozwoli ci się zabezpieczyć przed proxy typu Hitfaker i HTTP.
To są te zmienne. I teraz jak to zastosować w praktyce? No tak! Możemy użyć prostych if'ów(zapytań). Najpierw zamienimy zmienne globalne w lokalne i wszystko damy sobie w funkcje aby kod był bardziej przejrzysty.
Teraz stworzymy jądro skryptu(ify). No to najpierw zrobimy trudniejsze zapytanie. Zajmiemy się zmienną $_SERVER['HTTP_ACCEPT_ENCODING']
To teraz dodamy zmienną $_SERVER['SERVER_PROTOCOL']. Na zwykłych przeglądarkach zwraca on HTTP/1.1 . Na proxy zwraca czasami HTTP/1.0 . Więc to już cos (IMG:style_emoticons/default/smile.gif)
Dobra, dodaliśmy 2 zabezpieczenia, zostały ostatnie 2. Zrobimy Connection(normalnie zwraca "Keep-Alive", na proxy albo nic nie zwróci lub "close") i LANGUAGE(Zwraca język przeglądarki).
I można powiedzieć że to już koniec, jeszcze dodamy return i upiększymy trochę kodzik.
Pamiętajcie aby użyć elseif a nie dawać kolejne if'y. Zwykłymi ifami dałoby rade lecz po co sobie utrudniać życie. To zostało nam tylko użyć naszej funkcji.
Można też zrobić tak(sposób Pawel_W)
Mój system na 3 240 proxy przepuścił tylko jedno, więc to już coś (IMG:style_emoticons/default/smile.gif) Podziękowania dla Pigola który pomógł mi w tym temacie (IMG:style_emoticons/default/wink.gif) Temat: Szukanie w stringu danego tekstu Zdjęcia bazy (IMG:http://iv.pl/images/13259010426311640687.jpg) (IMG:http://iv.pl/images/48001239593962469983.jpg) A tutaj krótki filmik (IMG:style_emoticons/default/smile.gif) http://www.youtube.com/watch?v=eLT1aJSyBiE po chwili(rezultat bombardowania proxami) http://www.youtube.com/watch?v=r-15YK5nAHw Jestem nowy w php więc jeżeli coś jest nie tak to prosiłbym o poprawienie. Fajnie gdyby temat został podpięty, mało osób wie jak się zabezpieczyć "porządnie" przed proxy. Kod i tutka napisałem samemu, nie pozwalam na kopiowanie. Ten post edytował jackraymund 4.07.2011, 11:27:43 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%)
|
nazwy zmiennych typu "iksde", mieszanie polskich nazw z angielskimi, porażka (IMG:style_emoticons/default/tongue.gif)
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 21 Dołączył: 10.06.2011 Skąd: Głogów Ostrzeżenie: (0%)
|
Mam taki nawyk by nazywać zmienne byle by się nie powtarzały. To też przez inne języki w których programowałem, w dodatku mam 14lat, to też robi swoje.
@down no niby tak, lecz kto jej nie używa? testowałem na operze, ie, firefox i chrome @down2 no tak też można by było zrobić lecz nie o to dokładnie mi chodziło przy utrudnianiu życia (IMG:style_emoticons/default/biggrin.gif) (chodziło o elseif'y a if'y) Ten post edytował jackraymund 3.07.2011, 23:12:45 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%)
|
wiem, ale jak już dajesz coś do oceny, to mógłbyś je nazwać "po ludzku" (IMG:style_emoticons/default/smile.gif)
EDIT: sam początek kodu - czy wg Ciebie jeżeli przeglądarka nie obsługuje kompresji gzip, to oznacza, że ktoś wchodzi przez proxy? (IMG:style_emoticons/default/wink.gif) EDIT 2: Cytat Pamiętajcie aby użyć elseif a nie dawać kolejne if'y. Zwykłymi ifami dałoby rade lecz po co sobie utrudniać życie. po co utrudniać sobie życie? wg mnie utrudnianie sobie życia to właśnie taki kod, skoro można:
Ten post edytował Pawel_W 3.07.2011, 23:07:05 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 8.08.2010 Skąd: Warszawa Ostrzeżenie: (0%)
|
A tak z ciekawości, w jaki sposób sprawdziłeś skrypt w tych 3 tysiącach proxy? To jakiś program czy może strona? Podziel się jeśli możesz (IMG:style_emoticons/default/smile.gif)
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%)
|
Google -> hitfaker
@edit Swoją droga robienie dodatkowych zmiennych global -> local jest bez sensu, bo gorzej zorientować się w kodzie. Dodatkowo funkcja powinna zwracać typ boolean a nie int Ten post edytował Fifi209 7.07.2011, 19:02:56 |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
@jackraymund: Polecam specyfikację protokołu HTTP bo to co tutaj podałeś nie ma kompletnie nic wspólnego z proxy.
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%)
|
Jakiś czas temu też się nad tym zastanawiałem, ale tak na prawdę to taki sposób zadziała tylko częściowo. Bo nagłówki serwer proxy może sobie jak chce wysyłać i tak na prawdę nie musi ich wysłać wcale. A wtedy dostaniesz tylko adres IP serwera z którego przyszedł request. Musiałbyś mieć wtedy adresy IP wszystkich serwerów proxy. A co jeżeli ktoś na cel włamu do ciebie, postawi sobie serwer proxy na jakimś vps? Porzuciłem rozwiązanie problemu w taki sposób, to zwyczajnie jest to nie osiągalne. Nie możesz się opierać na nagłówkach, zwłaszcza tych które są opcjonalne, bo w tych nagłówkach czasami można wysłać wszystko, jak chociażby css, efektem czego takie triki: http://mathiasbynens.be/demo/css-without-html podejrzyj sobie źródło (IMG:style_emoticons/default/wink.gif)
|
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 23:50 |