[ maxa @ 07.12.2002. 22:56 ] @
kada se izabere crack fajl koji hoces da skines otvara se nova stranica
sa reklamama i jednim dugmetom na sredini na kome pise download a iznad njega
stoji 0%.
klik na to dugme i otvara se prozor gde zelis da smestis fajl koji skidas.
nakon toga pocinje skidanje tog fajla ali se sve desava u prozoru pretrazivaca
tj. ona 0% pocinje da se povecava sve do 100% kada je download fajla zavrsen.

Ima li neko ideju kako da se isprogramira ovo ili neki slican kod kako da se sakrije
download adresa fajla koji se skida???

Dao bi i url ovog primera ali je saj ukinut pre izvesnog vremena a na googlu i ne znam kako da trazim.

Pozdrav
maxa
[ tOwk @ 04.01.2003. 09:57 ] @
Hm, još uvek nisam video takvu stvar. Najverovatnije je razlog što to ne može postojati.

Preuzimanje fajla je nemoguće bez poznavanja adrese. Sigurno ti jedino ne znaš kako da je vidiš, ali to je sigurno moguće.

Jedan primer sledi.

Downloadu daš neki Content-type koji browser može da pročita (ali ne koristi text/* pošto oni se poigraju sa CR i LF, već neki image/*). Zatim na stranicu dodaš neki ,,nevidljivi'' IFRAME koji poziva taj download i pratiš njegovo učitavanje pomoću ECMAScript-a. I onda nateraš korisnika da zapamti taj IFRAME. A to je i jedini problem, i tu je ona nemogućnost. Prilikom pamćenja, on će gotovo sigurno imati mogućnost da vidi URL.

Međutim, bez dodatne komunikacije sa korisnikom je ovo nemoguće uraditi čak i u Javi, ili nečemu drugom (dobićeš pitanje: ,,a da li ti misliš da je bezbedno da ja tebi snimim nešto na disk, ali pazi da to ne mora biti bezbedno, i da je veoma veliki sigurnosni propust ako to dopustiš'' a to će teško ubediti korisnika).

PS. A i ne znam kakve ovo veze ima sa ,,scripting languages''.
[ Gojko Vujovic @ 04.01.2003. 13:28 ] @
Viđao sam sličnu stvar urađenu u javi, applet dovlači ceo fajl i pita te gde da ga snimi, a anti-leech je dodatno pojačan time što je url validan samo za tu jednu konekciju, posle nestaje sa servera. Tako da je zaista nemoguće napraviti direct download link.
[ tOwk @ 04.01.2003. 16:32 ] @
Moguće je u Javi napraviti sigurno, ali nadam se da ne postoji tako relaksirani JVM u nekom browseru po pitanju sigurnosti koji neće dati neko upozorenje korisniku, pored običnog pitanja.

Međutim, i tada link mora postojati, i samim tim se i saznati. A taj oblik linkova za jednu upotrebu je lako napraviti i nema nikakve veze sa traženim (makar je ja ne vidim). U svakom slučaju, navedite mi jedan pravi primer gde nije moguće saznati link sa kojeg se downloaduje, jer u suprotnom se ne preuzima sa tog linka nego nekog drugog.

Uopšte, sve te tehnike se zasnivaju na, kao i nekada popularno onemogućavanje korisnika da dobije meni na pritisak desnog tastera miša, zavaravanju korisnika da se nešto ne može uraditi.

Svakako, Gojko je u pravu da se ovo sa praktične strane može ostvariti tako što se prave jednokratni linkovi, ali za to nije potrebna Java, odnosno, to se radi na serveru, i korisniku se dopušta da sazna link, ali ga ne može stalno koristiti.
[ Dejan Topalovic @ 04.01.2003. 18:16 ] @
Ja sam to vidjao na thecrack.am ili slichnoj adresi. Kad preko astalavista.box.sk trazis neki fajl, on ti kaze da ga imas skinuti na thecrack (ili kako se vec zvase sajt). Nisam vec odavno trazio nijedan crack, pa ne znam da li taj sajt radi, ali princip downloada je bio takav kakav je opisao maxa.
[ tOwk @ 05.01.2003. 05:43 ] @
Bla, bla, bla, bla... (nemojte se ljutiti ili naći uvređenim :)

Prazne priče, bez konkretne adrese za primer... Šta je od mojih reči bilo nejasno ili pogrešno? Zašto uporno tvrdite da lažem?

A ja sam svojevremeno preuzimao neke ,,alatke'' sa dotičnog sajta, a da nisam imao Java podršku, a čini mi se da mi je čak i JavaScript bio isključen, i koristio sam ,,wget''.

[ Goran Rakić @ 05.01.2003. 09:33 ] @
thecracks.net ima java aplet (od pre god. dana, ranije nije bilo) koji ti napravi haos u sistemu, doda ikonice, instalira neku spyware aplikaciju za gledanje porno filmova sa nemačkog hotline-a,... I da ima tu skalu koja lepo ide od 0 do 100 i kada dodje do 100 ponudi ti dijalog za snimanje fajla. Verovatno ga napise negde na disku pa ga onda pomeri na naznacenu lokaciju. Sve u svemu, java-u drzim iskljucenu ;) a srecom ne moram vise da obilazim slicne lokacije.

Inace ovo sa laznim url-om mozes da napravis i preko PHP-a. Jednostavno strpas sve fajlove u files direktorijum, isti .htaccess-om zaštitiš, onda php-om preko fopen() otvoriš taj fajl i baciš ga sa odgovarajućim Content-Type headerom direktno korisniku u browser... E sada ti možeš da koristiš i sesije pa da ne dozvoliš korisniku da fajl skine dva puta, da dodaš autorijzaciju i šta god hoćeš...
[ Dejan Topalovic @ 05.01.2003. 11:21 ] @
Citat:
tOwk:
Bla, bla, bla, bla... (nemojte se ljutiti ili naći uvređenim :)

Prazne priče, bez konkretne adrese za primer... Šta je od mojih reči bilo nejasno ili pogrešno? Zašto uporno tvrdite da lažem?

A ja sam svojevremeno preuzimao neke ,,alatke'' sa dotičnog sajta, a da nisam imao Java podršku, a čini mi se da mi je čak i JavaScript bio isključen, i koristio sam ,,wget''.


Eehehehe, zar je neko rekao da lazes? Ja sam rekao samo da je adresa glasila tako nekako, jer vec mjesecima nisam trazio neki crack, tako da sam i zaboravio kako se zove taj sajt.
Tvrdim da je to radilo na tom principu kojeg je opisao maxa, a kako to zaista u pozadini funkcionise - ne znam. Pretpostavljam da je Java u pitanju.
Kako ti se moze ciniti da je JavaScript bio iskljucen dok si koristio wget? :) Ili da nisi imao Java podrsku? :) Mislim ...
Peace
[ tOwk @ 05.01.2003. 20:17 ] @
Svakako sam koristio browser za pristup toj stranici (a JavaScript i Java su bili isključeni), jer inače ne bih znao koji fajl da skinem. A to što sam koristio wget je trebalo da naznači da sam bio u stanju da saznam URL. Zar ni to nije jasno?

U svakom slučaju, pošto poznajem HTTP protokol, a nadam se da ne može proizvoljna Java aplikacija da mi piše po disku (to bi značilo ,,maleni'' sigurnosni propust), tvrdim da su priče o ,,nevidljivom URL-u'' istovremeno i ,,prazne priče''.

Toliko
[ CONFIQ @ 05.01.2003. 21:53 ] @
tOwk: pročitaj Go X!-ovu poruku još jedanput.Uz pomoć PHP-a možeš da pošalješ fajl koji i nije u homedirektorijumu...

još ako imaš dedicated makinu možeš da se igraš do milje volje.
[ tOwk @ 06.01.2003. 16:42 ] @
CONFIG: ma evo ti jednog sh programa koji isto to može da uradi:
Code:

#!/bin/sh
echo -e "Content-type: image/gif\r\n"
cat /etc/vidividi.gif


Zato tvoje oduševljenje ružnim PHP-om ostavi za neku drugu priliku.

To što ti možeš iz PHP-a da uradiš nešto je najmanje bitno. Bitno je da svaki CGI program (ili PHP, Perl, Python kao moduli) izlaz šalju po HTT Protokolu -- prolazio on kroz server ili ne (ASIS). A kao što rekoh, HTTP poznajem dosta dobro da ti kažem da je to u pravu.

A za HTTP klijenta je potpuno nebitno da li je adresa http://pera/slika.php?broj=5 ili http://pera/slike/5.png u svakom slučaju URL postoji, i može se saznati.

Ako ne poznaješ HTTP (kao što je, izgleda, slučaj) nema potrebe da se ubeđujemo.

Mislio sam da je dosad već jasno šta je moguće, a šta ne.

Zahvaljujem na preporuci da još jednom pročitam Go X!-ovu poruku, izvinjavam se što to nisam uradio, i...

toliko
[ bOkIcA @ 06.01.2003. 19:45 ] @
Izvini tOwk, ali mnogo gresis.

PHP-om, ASP-om is sl. je moguce slati fajl direktno u browser tj. klijent, pa cak i ako on ne postoji nigde na disku nego bude generisan.

Znaci nema download URL.


Ja PHP-om on-line pakujem u .zip i serviram isti browseru, a pritom ga ne cuvam na disku.
[ CONFIQ @ 06.01.2003. 21:12 ] @
opušteno čoveče nisam mislio ništa loše!

što se tiče #bash skripte,znam i #bash i ne kontam šta si hteo da dokažeš time?Samo si potvrdio isto što sam i ja rekao....

Citat:
A za HTTP klijenta je potpuno nebitno da li je adresa http://pera/slika.php?broj=5 ili http://pera/slike/5.png u svakom slučaju URL postoji, i može se saznati.


Reci mi nešto novo :=),pričamo kako da se zaustavi anti-leeching i baš sa primerom gore može da se zaustavi klijent,il sessijom il reffer-om nije važno.

ajde stavi u WGET ovaj fajl:
http://files.the-underdogs.org/games/u/ums/files/ums.zip
Pogodi zašto ne radi.

A posle idi na http://www.the-underdogs.org/game.php?id=1330 i odatle skini,i videćeš da radi....
[ tOwk @ 07.01.2003. 14:26 ] @
Jaooo, strašno se izvinjavam, pa vi ste potpuno u pravu!!!

Na kolenima molim za oproštaj!!!


A, možda, samo možda i ne...

Vidi moju ,,wget sesiju'':
Code:

# wget -c --header="Referer: http://www.the-underdogs.org/" http://files.the-underdogs.org/games/u/ums/files/ums.zip
--14:58:23--  http://files.the-underdogs.org/games/u/ums/files/ums.zip
           => `ums.zip'
Resolving files.the-underdogs.org... done.
Connecting to files.the-underdogs.org[209.120.136.196]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 126,869 [application/zip]

10% [==>                                  ] 13,599         1.24K/s    ETA 01:29


Kao što rekoh, ukoliko dovoljno ne poznajete HTTP, nema potrebe da se ubeđujemo. URL postoji, a to što se zahteva neko HTTP zaglavlje dodatno je najmanji problem (čak, većina novijih servera zahteva i ,,Host'' zaglavlje, ali njega klijenti uglavnom prosleđuju).

Čim si mi dao upozorenje da možda neće raditi, znao sam da zahteva ,,referer'' zaglavlje, a kasnije sam to i video na datom sajtu.

A za ono ,,pogodi zašto ne radi'' eto ti i odgovora, koji će ti možda zvučati grubo: zato što ne znaš HTT protokol. Nadam se da se ne vređaš.

Još jednom, sigurno je moj prepotentan pristup doveo do toga da se ,,svađamo'', ali poslušajte me: download je nemoguć bez download URL-a.
Sve što je moguće, i sve što se radi su takozvano skrivanje na prevaru: ,,ukoliko ga zamaskiram, većina njih neće znati URL''.

Nadam se da je sada jasno uz moj pokušaj da fajl preuzmem sa wget-om uspešan (ako još uvek ne verujete, poslaću vam jednu raw konekciju sa telnet-om, gde isto preuzimam taj fajl bez ikakvih problema).

Toliko

PS. bOkIcA, tvoje (ne)razumevanje si jasno pokazao time što navodiš PHP i ASP, a ja sam ti dao najjednostavniji primer pomoću shell skripte, ali uputiću te na pravi put. URL (Uniform Resource Locator) nema nikakve veze sa fajlom, već sa resursima, koji mogu biti i fajlovi, ali i dinamički generisani sadržaji, i još ponešto. To je za klijenta potpuno nebitno, već njemu sve to deluje na isti način: kao HTTP poruka (a većina HTTP klijenata ume tu poruku da snimi u fajl bez zaglavlja).
[ CONFIQ @ 07.01.2003. 14:55 ] @
uhh ti si baš naporan...

i šta si uradio sa wget-om? samo si stavio Header referer i ništa drugo (što bi svako malo pametniji to uradio) a je li možeš da linkuješ isti fajl na tvojoj web stranici i da pokazuje drugačiji referer?

a šta ako negde traži da skineš fajl sa POST /skripta.php?

naprimer da je

<FORM action=/d.x method=POST>
<INPUT TYPE="hidden" name="ID" value="24179">

evo ti ovo... http://cracks.am/d.x?24179 baš me interesuje kako ćeš to da skineš u WGET-u....
[ tOwk @ 07.01.2003. 18:32 ] @
Strašno... znam da sam naporan, ali i vi jednako...

Sve vreme ističem kako je to stvar klijenta i ničega drugog.

Na prethodno datoj stranici su dati i saveti kako da se podesi GetRight i ostali download manageri za preuzimanje tih fajlova (,,make referrer from URL''). Tada ,,anti-leech'' u tom primeru neće raditi. Tradicionalni web browseri to ne podržavaju, i zato ta mogućnost postoji.

Međutim, ukoliko učitaš stranicu sa http://www.kvota.net/proba.html počeće i download tvog fajla ums.zip sa servera (ovo radi bar u Mozilli, ne znam za druge; kao što rekoh, zavisi od klijenta). Sve što je trebalo da uradim je da postavim BASE, i da ubacim IFRAME. Naravno, IFRAME se može sakriti, i tako potpuno transparentno linkovati i sa mog sajta download na nekom drugom.

Što se wget-a tiče, i POST zahteva, zaista je nemoguće, pošto ih wget ne podržava. Međutim, ja to mogu da uradim raw pristupom, i u tome je suština.

Ali, POST zahtev se može uputiti i sa neke druge stranice podjednako dobro kao i sa te. Sa konkretnim sajtom je čak moguće da i stranica sa tim obrascem bude na bilo kom serveru (evo ti konkretno za taj crack na http://www.kvota.net/cracks.html), pošto se ne vrši čak ni provera referrera.

U svakom slučaju, postoji i curl koji podržava POST zahteve, pa se i sa njim može preuzeti tada fajl.

Tako, kao što vidiš, ništa od tih ,,naprednih'' tehnika ne bi mene sprečilo da linkujem te fajlove. Ako je to svrha tih metoda, onda je jasno da je svaka u nekoj meri neuspešna. Nadam se da sam sada to već pokazao.

Sigurno ih postoji još, ali više i ne vidim izazov u tome.

Kao što sam istakao u nekoj od prvih poruka, slažem se da je moguće napraviti jednokratne URL-ove (ili sa ograničenim trajanjem), i to je najbolje što se može uraditi, ali oni zahtevaju ipak malo više komunikacije između korisnika i servera. Ostalo su zavaravanja.

Nadam se da smo sad završili raspravu.

PS. Nijedna od stranica na www.kvota.net ne obrađuje na serveru neki fajl, već obavlja istu aktivnost koju obavlja i matična stranica: ili postavlja ,,referrer-a'' (kroz BASE tag u HTML-u), ili sadrži formu sa POST metodom za preuzimanje.

PPS. Sudeći prema http://www.w3.org/TR/html4/struct/links.html#idx-base_URI čini se da bi svaki browser trebalo da prihvati BASE tag i koristi ga na isti način.
[ -zombie- @ 07.01.2003. 19:16 ] @
ala ste vi tvdoglavi..

samo da vam pomenem... moze i kukiji da se koriste... naravno, sva tavka zastita se moze zahebati...

moze recimo sesija da se napravi, koja se kreira kada korisnik poseti moju stranicu, postavlja ip tog korisnika u sesiju (ne u kuki, pa ne moze da se pravari) a pri downloadu proverava da li sesija postoji, i da li je isti ip..

mada znam da i to moze da se zezna. jedino je moguce anteleech preko jednokratnog ili privremenog url-a

Citat:

Kao što sam istakao u nekoj od prvih poruka, slažem se da je moguće napraviti jednokratne URL-ove (ili sa ograničenim trajanjem), i to je najbolje što se može uraditi, ali oni zahtevaju ipak malo više komunikacije između korisnika i servera. Ostalo su zavaravanja.


nije ni mnogo, ni tesko, ni ne zahteva komunikacije sa klijentom.

url se genereri sa recimo jednom linijom koda (trajanje oko 2-3 min, a moze i po zelji). ovo je php primer, ali moze bilo kako, cak i sa sh skriptom.

Code:

$md5=md5("super-tajna-sifra".round(time()/100));
$url="/download.php/$md5/fajl.zip";
echo "<a href='$url'>klikni</a>";


a download.php

Code:

$md5=md5("super-tajna-sifra".round(time()/100));
if ($md5==$md5_dobijen_iz_url_a) pusti_download();

[ CONFIQ @ 07.01.2003. 19:40 ] @
Citat:
postavlja ip tog korisnika u sesiju (ne u kuki, pa ne moze da se pravari) a pri downloadu proverava da li sesija postoji, i da li je isti ip..
mada znam da i to moze da se zezna.


Humm.. baš sam to hteo da pomenem,ali me zanima kako bi to mogao da zezneš? napraviš korisničku sessiju sa IP-om,i pri POST-u gledaš da li je sessija već otvorena,ako nije nedaš fajl ako jeste daš fajl :)
Citat:
...http://www.kvota.net/proba.html počeće i download tvog fajla ...(ovo radi bar u Mozilli, ne znam za druge...


Pa ne radi ni u Operi7 ni u MSIE,stvarno bi server bio preopterećen :)
Ja bih to nazvao Bug-om u mozili (u našu korist) a možda i ne,nije važno.

Inače što se tiče onog md5(); najisrenije toga se nikad ne bih setio... ali je veoma dobra fora.



[ tOwk @ 08.01.2003. 01:58 ] @
Citat:
zombie / DDG:
nije ni mnogo, ni tesko, ni ne zahteva komunikacije sa klijentom.


Zaista ne treba više komunikacije ako se tako izvede. Međutim, ukoliko korisnik poznaje algoritam (što je, slažem se, malo verovatno), onda je moguće saznati URL u svakom trenutku.

To je i problem sa tako jednostavnim pristupom, a još se i ne može koristiti nastavljanje download-a i sve ostalo što je vrlo korisno i prisutno je u HTTP definiciji, zato što bi trebalo generisati novi URL za nastavak (a naravno i PHP skripta bi se trebala dograditi da podržava Content-Range).

Ovde bih dodao ideju da se URL propusti u svakom slučaju ako sadrži Content-Range, i ne zahteva se od samog početka, već, npr. od 1000. i većeg bajta. Tada bi se svako započinjanje preuzimanja moralo pokrenuti sa matične stranice, a nastavak bi se mogao vršiti bez problema. Ako je neki ,,prevarant'' spreman da preuzme sve osim prvih 1000 bajtova, neka izvoli, a za ove će morati na stranicu :)

A ukoliko se doda malo više ,,komunikacije'' sa korisnikom (npr. traži se registracija), i zatim se odobri tom korisniku registracija, i onda napravi URL koji će trajati ipak malo duže (npr. 7 dana) koji i zahteva autorizaciju, može se traženo obezbediti, a da se ništa ne izgubi.


Igore, što se tiče Opere i IE-a, kao što rekoh, sve to zavisi od klijenta. Zato mi je često wget bio referentni zbog jednostavnosti (presek mogućnosti svih ostalih), ali ako se koristi nešto napredniji (npr. curl), može se sve njime postići.

Pozdrav
[ -zombie- @ 08.01.2003. 14:13 ] @
Citat:

Humm.. baš sam to hteo da pomenem,ali me zanima kako bi to mogao da zezneš? napraviš korisničku sessiju sa IP-om


pa to ti je valjda towk objasnio. stavish nevidljivi <IFRAME> (ili mali, slabo vidljivi, i prekrijesh ga drugim lejerom, ako nevidljivi nece browser da ucita) i za njegov src stavish stranicu sa koje se vrse downloadi (i u kojoj se startuje sesija i pamti IP). kada se tra stranica ucita u <IFRAME> ona ce da startuje sesiju, da zapamti IP korisnika i da dozvoli download fajla...

Citat:

Zaista ne treba više komunikacije ako se tako izvede. Međutim, ukoliko korisnik poznaje algoritam (što je, slažem se, malo verovatno), onda je moguće saznati URL u svakom trenutku.


ma ja mogu javno da objavim algoritam, samo treba "super-tajna-sifra" da ostane tajna. zato sam je i stavio... ako ona ostane tajna, NEMA sanse da neko provali algo...