[ Wapx.WS @ 23.10.2010. 19:00 ] @
Da li postoji mogucnost da razlikujem curl od obicnog browsera i da mu onemogucim pristup sajtu, jer mi trosi dosta bandwidtha? U pitanju je php naravno. |
[ Wapx.WS @ 23.10.2010. 19:00 ] @
[ Nikola Poša @ 23.10.2010. 19:54 ] @
Pa u slučaju curl zahteva, $_SERVER['HTTP_USER_AGENT'] će izgledati npr. ovako nekako: curl/7.18.0 (i486-pc-linux-gnu) libcurl/7.18.0 OpenSSL/0.9.8g. Imajući to u vidu, sa nekim regex-om možeš da proveriš sadržaj tog člana $_SERVER niza, i onda u zavisnosti od rezultata odbiješ/odobriš pristup.
[ vatri @ 23.10.2010. 23:29 ] @
Samo da napomenem da to nije 100% sigurno ;)
Npr: Code (php): [ Jbyn4e @ 24.10.2010. 06:46 ] @
A na koji nacin ti to trosi "puno bandwith-a"? Skida ceo sajt ili neki deo? Ako direktno skida sa nekih adresa, uvedi proveru referera, mozda to pomogne, zavisi od tvog konkretnog slucaja (pretpostavljam da hoces da zabranis direktno skidanje igara linkom sa drugog sajta?)
[ Wapx.WS @ 24.10.2010. 11:48 ] @
Citat: Jbyn4e: A na koji nacin ti to trosi "puno bandwith-a"? Skida ceo sajt ili neki deo? Ako direktno skida sa nekih adresa, uvedi proveru referera, mozda to pomogne, zavisi od tvog konkretnog slucaja (pretpostavljam da hoces da zabranis direktno skidanje igara linkom sa drugog sajta?) Linkuje mi igre, lazira refferer i onda skripta odobrava pristup fajlu za download. Tako da gotovo pola bandwidtha ode na skidanja sa tog drugog sajta. Fopen sam zabranio, iframe, hotlinkovanje takodje, ali ovaj curl pravi problem :) Citat: Nikola Poša: Pa u slučaju curl zahteva, $_SERVER['HTTP_USER_AGENT'] će izgledati npr. ovako nekako: curl/7.18.0 (i486-pc-linux-gnu) libcurl/7.18.0 OpenSSL/0.9.8g. Imajući to u vidu, sa nekim regex-om možeš da proveriš sadržaj tog člana $_SERVER niza, i onda u zavisnosti od rezultata odbiješ/odobriš pristup. Hvala Nikola, nego jel ne postoji mogucnost da blokiram nekog ko normalno pristupa mom sajtu? Pretpostavljam da ne, tako da ovo dolazi u obzir :) Citat: E ovo je najveci problem, preko ovog koda mozesh da lazirash bilo koji browser, sad ostaje nada da lopov koristi neki "svoj" browser ;) [ Nikola Poša @ 24.10.2010. 12:48 ] @
Pa ne preostaje ti ništa drugo nego da pratiš log fajlove na tvom serveru, i da onda na osnovu neke aktivnosti za koju smatraš da je sumnjiva, npr. prebrzo otvaranje stranica na tvom sajtu i slično, sastaviš neki .htaccess, koji će da blokira takve zahteve. Npr.:
Code: RewriteEngine on RewriteCond %{HTTP_USER_AGENT} ovdeIdeRegexPatternZaNestoNaStaSumnjas RewriteRule (.*) - [F] Ili više uslova: Code: RewriteEngine on RewriteCond %{HTTP_USER_AGENT} prviPattern [OR] RewriteCond %{HTTP_USER_AGENT} drugi [OR] RewriteCond %{HTTP_USER_AGENT} treci RewriteRule (.*) - [F] Naravno, uvek možeš da blokiraš i konkretnu IP adresu: Code: order allow,deny deny from 192.168.1.2 allow from all [ mitke013 @ 24.10.2010. 13:21 ] @
Ja bas hteo da predlozim referer, nisam znao da moze da se lazira.
Nego, a da probas sa javascript zastitom? Evo neka ideja iz glave; kad korisnik dodje na tvoj sajt normalno, preko ajax-a se stavi $_SESSION['real_visitor'] = true . Pre nego sto skripta dozvoli skidanje, proveri ovaj uslov. curl i svi botovi se ponasaju kao browser bez JS, ovo ti bi odbilo dosta njih. [ mitke013 @ 24.10.2010. 13:23 ] @
Citat: Nikola Poša: Pa ne preostaje ti ništa drugo nego da pratiš log fajlove na tvom serveru, i da onda na osnovu neke aktivnosti za koju smatraš da je sumnjiva, npr. prebrzo otvaranje stranica na Ovde ima jedan problem; mnogo korisnika otvori brdo tabova da se ucitavaju. [ Wapx.WS @ 24.10.2010. 13:48 ] @
Citat: Nikola Poša: Pa ne preostaje ti ništa drugo nego da pratiš log fajlove na tvom serveru, i da onda na osnovu neke aktivnosti za koju smatraš da je sumnjiva, npr. prebrzo otvaranje stranica na tvom sajtu i slično, sastaviš neki .htaccess, koji će da blokira takve zahteve. Npr.: Code: RewriteEngine on RewriteCond %{HTTP_USER_AGENT} ovdeIdeRegexPatternZaNestoNaStaSumnjas RewriteRule (.*) - [F] Ili više uslova: Code: RewriteEngine on RewriteCond %{HTTP_USER_AGENT} prviPattern [OR] RewriteCond %{HTTP_USER_AGENT} drugi [OR] RewriteCond %{HTTP_USER_AGENT} treci RewriteRule (.*) - [F] Naravno, uvek možeš da blokiraš i konkretnu IP adresu: Code: order allow,deny deny from 192.168.1.2 allow from all Hvala puno! Probacu nesto da iskombinujem. Citat: mitke013: Ja bas hteo da predlozim referer, nisam znao da moze da se lazira. Nego, a da probas sa javascript zastitom? Evo neka ideja iz glave; kad korisnik dodje na tvoj sajt normalno, preko ajax-a se stavi $_SESSION['real_visitor'] = true . Pre nego sto skripta dozvoli skidanje, proveri ovaj uslov. curl i svi botovi se ponasaju kao browser bez JS, ovo ti bi odbilo dosta njih. To sa javascriptom bi doslo u obzir da je web sajt u pitanju, ali posto je ovo sajt namenjem prevashodno mobilnim telefonima, ima dosta browsera koji ga ne podrzavaju. [ Miroslav Ćurčić @ 24.10.2010. 15:18 ] @
Blokiranje po IP adresi je za najpouzdanije rešenje, to se ne može lažirati.
Naravno lopov će možda pokušati da crawler prebaci na na neki drugi hosting (zbog druge IP adrese) i tako napravi "prozor" kroz koji će opet prolaziti ali to je ipak spor proces pa ćeš stizati da ispratiš te promene, a on će se posle 5-6 puta umoriti. Takođe možeš da ga prijaviš Guglu kao plagijatora pa ako pazari ban onda mu slaba vajda od tog sadržaja. Ako je u pitanju naš sajt možeš i da mu pripretiš Odeljenjem za visotehnološki kriminal pozivajući se na autorska prava. [ Wapx.WS @ 24.10.2010. 15:40 ] @
Evo uspeo sam za sad da uradim nesto, bas preko ip adrese. Nije u pitanju nas sajt.
Hvala na preciznim odgovorima ;) [ technotize @ 24.10.2010. 21:27 ] @
Bolje koristi PHP sesije, nego proveru preko referera, posto ste i sami rekli da moze da se lazira.
[ vatri @ 24.10.2010. 22:16 ] @
Kako mislis koristiti sesije?
U principu sve se moze lazirati... [ midgard @ 27.10.2010. 11:29 ] @
Napravi 2 skripte, 1 koja se poseti da bi korisnik downloadovao file, druga da postavi cookie i da mu file da download. Kada korisnik klikne na link DOWNLOAD ti mu postavis neki cookie random value, zatim uradis forward na drugu skriptu gde proveri da li ima cookie value taj i taj i ako ima das mu download.
Ima i varijanta da se lazira cookie, ali varujem da ce se namuciti dok skonta o cemu se radi i dok to namesti da fake-uje. Sa druge strane uvek mozes da napravis dimanicki deny. Primer iz glave na brzinu: - Logujes svaki IP koji download fajl. - Ako se isti IP pojavljuje recimo 5 puta za 1 minut ti ga ubacis na neku black listu. - U skripti koja mu daje file za download prvo sto uradis proveris da li je njegov IP u black listi, ako jeste deny. Ovo te spasava i kod promene IP adresa. Ako je lik dovoljno pametan da vrti proxy adrese na svakom http requestu onda jebes ga:) Al to cisto sumnjam da je slucaj kod tebe. [ Wapx.WS @ 27.10.2010. 15:30 ] @
Citat: technotize: Bolje koristi PHP sesije, nego proveru preko referera, posto ste i sami rekli da moze da se lazira. Ovo lepo zvuchi, samo ako mogu neke smernice :) Citat: vatri: U principu sve se moze lazirati... Nazalost :) Citat: midgard: Napravi 2 skripte, 1 koja se poseti da bi korisnik downloadovao file, druga da postavi cookie i da mu file da download. Kada korisnik klikne na link DOWNLOAD ti mu postavis neki cookie random value, zatim uradis forward na drugu skriptu gde proveri da li ima cookie value taj i taj i ako ima das mu download. Ima i varijanta da se lazira cookie, ali varujem da ce se namuciti dok skonta o cemu se radi i dok to namesti da fake-uje. Sa druge strane uvek mozes da napravis dimanicki deny. Primer iz glave na brzinu: - Logujes svaki IP koji download fajl. - Ako se isti IP pojavljuje recimo 5 puta za 1 minut ti ga ubacis na neku black listu. - U skripti koja mu daje file za download prvo sto uradis proveris da li je njegov IP u black listi, ako jeste deny. Ovo te spasava i kod promene IP adresa. Ako je lik dovoljno pametan da vrti proxy adrese na svakom http requestu onda jebes ga:) Al to cisto sumnjam da je slucaj kod tebe. Opet imam isti problem. Ne podrzavaju svi telefoni kolacice :S To za IP dolazi u obzir, jer ima bas dosta downloada pa kad vidim da je jedan ip downloadovao 100 puta fajlove, odma na blacklist. Svidja mi se ovaj predlog. Samo sto je opet problem sa mobilnim telefonima jer dosta njih koristi istu ip adresu :) [ midgard @ 27.10.2010. 16:03 ] @
Pa ti onda stavi da IP moze da ima ograniceno vreme u blacklisti, recimo 1 dan. Posle ga obrises iz liste.
[ Milos911 @ 28.10.2010. 12:06 ] @
Ima bolja opcija od blokiranja lopova. Umesto da ga blokiras kad otkrijes da krade sadrzaj, ti lepo napravi redirekciju njegovog zahteva na lazni fajl.
Znaci posto ti krade igrice ti napravi jednu laznu koja ce da izbaci poruku tipa "Igrica je ukradena sa to i tog sajta, za download iste kliknite tu i tu". Ukoliko ti je ovo previse koplikovano da napravis (mislim na igricu) uzmi onu skriptu za jar bookmark i modifikuj je da salje na tvoj sajt (skriptu imas na brdu domacih wap sajtova, ako ne mozes da nadjes javi se na pp). On nece odmah primetiti da saljes druge fajlove, korisnici ce videti sta radi i preci da skidaju kod tebe... [ technotize @ 26.01.2011. 01:27 ] @
Citat: Wapx.WS: Ovo lepo zvuchi, samo ako mogu neke smernice :) Jes da dosta kasnim, ali evo finog objasnjenja za PHP sesije: http://tutorijali.rs/view_tutorial.php?id=310 [ vatri @ 26.01.2011. 09:09 ] @
Citat: Miroslav Ćurčić: Blokiranje po IP adresi je za najpouzdanije rešenje, to se ne može lažirati. Naravno lopov će možda pokušati da crawler prebaci na na neki drugi hosting (zbog druge IP adrese) i tako napravi "prozor" kroz koji će opet prolaziti ali to je ipak spor proces pa ćeš stizati da ispratiš te promene, a on će se posle 5-6 puta umoriti... Vrlo lako se lazira IP, provjereno.:) Code (php): ... $ips = array('xxx.xxx.xxx.xxx:80','xxx.xxx.xxx.xxx:80' );//array of proxies $rand_ip = $ips[array_rand[$ips]]; curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); curl_setopt($ch, CURLOPT_PROXY, $rand_ip); [ Miroslav Ćurčić @ 26.01.2011. 09:40 ] @
Da, proxi je vrsta "prozora" ali vremenom će vlasnik sajta pohvatati sve te IP-ove i šta će onda? Ako lopovu nije mrsko da stalno traži nove proksije ni vlasniku sajta ne bi trebalo da bude teško da povremeno pogleda ko mu vuče BW i da blokira te IP. Ja bolje od ovoga ne umem.
[ midgard @ 27.01.2011. 10:28 ] @
Vracamo se na staru diskusiju :)
Sada postoje geolocation servisi koji ti vracaju kojoj zemlji pripada odredjeni IP. Tako da ako ti aplikacija/sajt nije full worldwide, lako mozes da odstranis deo nezeljenih korisnika/stetocina. Na primer tvoj sajt prodaje nesto sto moze da se kupi samo na Balkanu. Ti blokiras Kinu, jer su mnogo vece sanse da neko koristi proxy iz Kine, nego da je neko u Kini posetio tvoj sajt sa namerom da kupi nesto. Jos jedna stvar koju mozes da uradis je da instaliras razne network dijagrame na server (pun ih je net, uglavnom pisanih u perlu), ako vec nemas neke na serveru i na taj nacin da pratis koji IP pravi znatno veci bandwith i blokiras IP. Vremenom nece ostati mnogo Proxy IP adresa koje mogu da se koriste. Takodje mozes da belezis traffic koji je neki IP ostvario u zadnjih nekoliko sati ili dana, tj. da napravis download limit tvojih aplikacija. Jos jedno resenje je firewall i filtriranje paketa, mislim da moze da se izvede da prepozna curl, ali ne znam kako, nisam vican sa firewall-ovima. Kombinacijom ovih i prethodno navedenih zastita ostavljas jako malu mogucnost da neko zloupotrebi servers. Nacina ima dosta, samo treba ideja i znanja. Nadam se samo da starter teme (da ne kazem otvarac :) ) cita ovaj topic :) Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|