Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%)
|
Witam, od jakiegoś czasu zacząłem stosować AJAX'a w swoich projektach.
Chciałbym zabezpieczyć plik PHP w ten sposób, aby zwracał dane tylko dla mojego skryptu, a po wejściu do tego pliku z zewnątrz (np: http://snifferwebpage.awardspace.biz/data.php) zwracał błąd. Napisałem małe zabezpieczenie, ale chciałbym, żeby ktoś z Was je przetestował (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) BTW. sam próbowałem je ominąć, przy wykorzystaniu cURL'a na innym serwerze, ale się nie udało. Link: http://snifferwebpage.awardspace.biz/ Pozdrawiam, sniff (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował erix 6.06.2009, 17:19:33
Powód edycji: [erix] chyba do ocen?
|
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%)
|
hehe - masz tam jakieś zabezpieczenie przed floodowaniem czy tylko skrypt nie wyrobił przy pętli 100?? - co drugie średnio 50% wyskoczyły błędy (IMG:http://img-upload.pl/images/938_i.gif) - ale dane bez problemu się pobierają (IMG:http://img-upload.pl/images/170_l.gif) - swoją drogą coś jest nie tak bo i w przeglądarce jak za często i za szybko klikałem te przyciski to się wykolejało i potem nie zmieeee^^ - pozatym do zapytań ajax'owych mógłbyś dorzucić jakąś pamięć - pomysł na zabezpieczenie fajny (IMG:http://img-upload.pl/images/959_e.gif) - np to z liczbą znaków (IMG:http://img-upload.pl/images/959_e.gif)
w sumie to mógłbyś pobrać przez takie pseudo zabezpieczenie dopiero główniejszy skrypt co tym by się zajmował jakiś trudniejszy - no hoć jak się nagłówki sprawdzi to pod wszystko da się podszyć - ps. do czego jest to xmlhttp.setRequestHeader("Connection", "close");(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) - tzn podejrzewałem ale nagłówki były wysłąne w przeglądarce i tak: Connection: keep-alive Keep-Alive: 300 w każdym bądź razie jeśli logowałęś ilość zapytań z jednego ip to weisz że to nie zabezpieczenie dla kogoś kto coś trochu pisze - ale lepszy rydz jak nic (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) - swoją drogą już myślałem że jednak coś konkretnego jest z tym zabezpieczeniem bo jest weekend i dzisiaj też trochu chlupnąłem ale jak się okazało katalog dla skryptu nie miał praw zapisu i ja na fazie patrzałem gdzie literówkę zrobiłem (IMG:http://img-upload.pl/images/553_x.gif) ale przyznaję, że dosyć ciekawy pomysł na zabezpieczenie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) - zapamiętam - moze trochu zmodyfikuję i pewnie wykożystam w przyszłości (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) oki - jest to przydługawe bo mi się teraz myśleć nie chciało to tylko funkcje kopiowałem i modyfikowałem ale jeśli miałbyś nie wierzyć [wiem - brzydki kod ale co chcesz od kogoś co jest na fazie - skopiowałem tylko fragment z kodu co po pijanemu analizowałem serwisz podbij (IMG:http://img-upload.pl/images/530_j.gif) ) Kod <?php // strona function strona($url){ $ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); $headers = array( 'Keep-Alive: 300', 'Accept-Language: pl,en-us;q=0.7,en;q=0.3', 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' ); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5) Gecko/2008121300 SUSE/3.0.5-0.1 Firefox/3.0.5'); curl_setopt($ch, CURLOPT_HEADER, 0); // gzip curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); // deflate curl_setopt($ch, CURLOPT_ENCODING, 'deflate'); // gzip, deflate curl_setopt($ch, CURLOPT_ENCODING, ''); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt'); curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt'); $tresc=curl_exec($ch); if(curl_errno($ch)){echo 'Błąd #'.curl_errno($ch).': '.curl_error($ch);} curl_close($ch); return $tresc; unset($tresc); }; // reqID function reqID($url){ $ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); $headers = array( 'Host: snifferwebpage.awardspace.biz', 'Keep-Alive: 300', 'Accept-Language: pl,en-us;q=0.7,en;q=0.3', 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'POST /data.php HTTP/1.1', 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Content-Type: application/x-www-form-urlencoded', 'Content-Length: 9', 'Keep-Alive: 300', 'Cache-Control: no-cache', 'Pragma: no-cache', 'Connection: keep-alive' ); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5) Gecko/2008121300 SUSE/3.0.5-0.1 Firefox/3.0.5'); curl_setopt($ch, CURLOPT_POST, 1);//przesylamy metodą post curl_setopt($ch, CURLOPT_POSTFIELDS, 'reqID=get'); //dane do wyslania curl_setopt($ch, CURLOPT_REFERER, 'http://snifferwebpage.awardspace.biz/'); curl_setopt($ch, CURLOPT_FORBID_REUSE, true); curl_setopt($ch, CURLOPT_HEADER, 0); // gzip curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); // deflate curl_setopt($ch, CURLOPT_ENCODING, 'deflate'); // gzip, deflate curl_setopt($ch, CURLOPT_ENCODING, ''); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt'); curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt'); $tresc=curl_exec($ch); if(curl_errno($ch)){echo 'Błąd #'.curl_errno($ch).': '.curl_error($ch);} curl_close($ch); return $tresc; unset($tresc); }; // dane function dane($ktore,$url){ $ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); $headers = array( 'Host: snifferwebpage.awardspace.biz', 'Keep-Alive: 300', 'Accept-Language: pl,en-us;q=0.7,en;q=0.3', 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'POST /data.php HTTP/1.1', 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Content-Type: application/x-www-form-urlencoded', 'Keep-Alive: 300', 'Cache-Control: no-cache', 'Pragma: no-cache', 'Connection: keep-alive', 'Content-Length: 44' ); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5) Gecko/2008121300 SUSE/3.0.5-0.1 Firefox/3.0.5'); curl_setopt($ch, CURLOPT_POST, 1);//przesylamy metodą post curl_setopt($ch, CURLOPT_POSTFIELDS, 'dane='.$ktore.'&sess='.reqID($url)); //dane do wyslania curl_setopt($ch, CURLOPT_REFERER, 'http://snifferwebpage.awardspace.biz/'); curl_setopt($ch, CURLOPT_HEADER, 0); // gzip curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); // deflate curl_setopt($ch, CURLOPT_ENCODING, 'deflate'); // gzip, deflate curl_setopt($ch, CURLOPT_ENCODING, ''); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt'); curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt'); $tresc=curl_exec($ch); if(curl_errno($ch)){echo 'Błąd #'.curl_errno($ch).': '.curl_error($ch);} curl_close($ch); return $tresc; unset($tresc); }; strona('http://snifferwebpage.awardspace.biz/'); // echo '<pre>'.reqID('http://snifferwebpage.awardspace.biz/data.php').'</pre>'; for ($i=1;$i<7;++$i){$ktore=($i%2)+1; echo $i.' : '.dane($ktore,'http://snifferwebpage.awardspace.biz/data.php').'<br/>';} ?> ps. co niektórzy boty piszą też w js jako userscript i parametry do serwera swojego przekazują - a więc to co na stronie wtedy jest jak na talerzu podane (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) - tyle, że musi mieć przeglądarkę włączoną ^^ Ten post edytował zegarek84 7.06.2009, 22:02:41 |
|
|
|
sniffer32 [Ajax][PHP] Bezpieczeństwo skryptów 6.06.2009, 15:55:55
zegarek84 tzn. co jest zabezpieczone?? - a jeśli tak miało b... 6.06.2009, 17:59:07
sniffer32 Jak widzisz po wciśnięciu przycisku "pobierz ... 6.06.2009, 19:21:43
marcio Z tego co widzialem za pomoca firebug'a i live... 6.06.2009, 19:42:08
Fishu Ostatnio też myślałem, o bezpieczeństwie takich sk... 6.06.2009, 20:31:07
sniffer32 CytatOstatnio też myślałem, o bezpieczeństwie taki... 7.06.2009, 05:24:10
sniffer32 Cytathehe - masz tam jakieś zabezpieczenie przed ... 8.06.2009, 06:47:41
zegarek84 a dałeś w katalogu uprawnienia do zapisu skryptom?... 8.06.2009, 15:45:11
sniffer32 W 1 wersji było coś takiego, że dla reqID, generow... 8.06.2009, 16:56:16
zegarek84 wszystko ok i już trudniej - ale jak już napisałem... 8.06.2009, 21:21:14 ![]() ![]() |
|
Aktualny czas: 24.12.2025 - 16:04 |