Zabránění kopírování obsahu WWW

DoNotStealThisWebsite:)

Re:Zabraneni kopirovani obsahu WWW
« Odpověď #30 kdy: 19. 09. 2015, 16:33:49 »
Pořád jde ale o techniky, na které není potřeba ultra haxor, pouze člověk s průměrnými znalostmi IT.
Pokud si musim psat vlastni tool, tak uz mi prijde, ze to nebude delat clovek s prumernymi IT znalostmi. Prumerne IT znalosti IMO konci u pouzivani e-mailoveho klienta.



A samozrejme to neni opravdova ochrana, je to jen takove drbatko proti prumernemu uzivateli. Proti profikum nemate stejne sanci, ani se svym SW, mozna tak se svym HW, ale i tam to pujde, pokud se bude chtit (napr. kamera, pripadne i ocr).

Odolat to musi i nadprumerne vzdelanym IT lidem, tedy i programatorovi, ktereho poprosi kamarad aby mu to *zadarmo* stahnul. Tedy aby na "udelam to zadarmo" to bylo prilis mnoho prace (komercne se to nikomu nevyplati kopirovat kvuli postihu). Dle meho nazoru na to staci pomerne malo, treba jen javascript skladat z fragmentu a ty obcas prohodit, zamenit jmen promennych (coz je trivialni ukol na prvni zamenu, ale zpetne se s tim pekne potrapite-vlastni zkusenost). Proste udelat to tak, aby kazda stranka byla prilis dynamicka i kodem.

Asi zasadni problemy jsou:

- jak skryte ulozit informaci do browseru (treba klic na dekodovani dat), ktery zadny wget/ripper neuvidi. Napada mne cookie, dlouho nacachovany obrazek/objekt (otazka je jak presvedcit browsery aby to nereloadovaly) a http://stackoverflow.com/questions/2035075/using-window-name-as-a-local-data-cache-in-web-browsers

- jak unikatne identifikovat bez javy a flashe browser (takovy zjednoduseny panopticlick). napada mne user-agent, rozliseni, pluginy, jazyk, vhodna cookie.


_pepak

Re:Zabraneni kopirovani obsahu WWW
« Odpověď #31 kdy: 19. 09. 2015, 17:10:40 »
Dle meho nazoru na to staci pomerne malo, treba jen javascript skladat z fragmentu a ty obcas prohodit, zamenit jmen promennych (coz je trivialni ukol na prvni zamenu, ale zpetne se s tim pekne potrapite-vlastni zkusenost). Proste udelat to tak, aby kazda stranka byla prilis dynamicka i kodem.
Dle mého názoru jste příliš optimistický. Hypoteticky, kdyby po mě kamarád chtěl, abych mu naprogramoval vycucání té stránky, tak se vůbec nebudu obtěžovat s nějakou deobfuskací toho javascriptu a hledáním, jak ten text vytáhnout nějak chytře z toho balastu, kterým ho obalíte. Místo toho vezmu jádro prohlížeče a obalím ho kódem, který bude podle nějakého pravidla procházet jednotlivá URL, a vždy po zobrazení obsahu zastaví všechny skripty, ten obsah vytáhne (např. na bázi CTRL+A, CTRL+C, ať se bavíme o úplně jednoduchém a hodně účinném řešení) a přejde na další stránku. Pro jednorázové vytáhnutí vašich dat to bude bohatě stačit.

Citace
- jak skryte ulozit informaci do browseru (treba klic na dekodovani dat), ktery zadny wget/ripper neuvidi.
Nelze. Zejména pokud chcete, aby každý uživatel měl tu informaci jinou. Nejblíž se tomu blíží vygenerování unikátního programu pro každého uživatele (např. mít nějaký Flashový zdroják, který vždy upravíte, zkompilujete, uživateli pošlete binárku a pak necháte spustit), ale proti jednorázovému vycucání to moc účinné není.

Citace
- jak unikatne identifikovat bez javy a flashe browser (takovy zjednoduseny panopticlick). napada mne user-agent, rozliseni, pluginy, jazyk, vhodna cookie.
No právě na bázi toho, co dělá ten Panopticlick. Dejte dohromady dostatek "neškodných" proměnných a browser je identifikován dost určitě. Akorát nevidím, jak vám to pomůže v ochraně vašich dat.

IMHO se snažíte o něco, v čem nemáte šanci uspět, ale je to váš boj...

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Zabraneni kopirovani obsahu WWW
« Odpověď #32 kdy: 19. 09. 2015, 17:51:08 »
Odolat to musi i nadprumerne vzdelanym IT lidem, tedy i programatorovi, ktereho poprosi kamarad aby mu to *zadarmo* stahnul.
Tedy aby na "udelam to zadarmo" to bylo prilis mnoho prace (komercne se to nikomu nevyplati kopirovat kvuli postihu).

PhantomJS je foss a rekl bych, ze i dost lidi kteri delaj JS s tim umi (kvuli automatickemu testovani). K narocnosti nize.

Dle meho nazoru na to staci pomerne malo, treba jen javascript skladat z fragmentu a ty obcas prohodit, zamenit jmen promennych (coz je trivialni ukol na prvni zamenu, ale zpetne se s tim pekne potrapite-vlastni zkusenost). Proste udelat to tak, aby kazda stranka byla prilis dynamicka i kodem.

PhantomJS zpracovava stranku jako prohlizec (protoze to je prohlizec - WebKit), takze tohle solichani je uplne k nicemu. Pokud to uvidi koncovy uzivatel (a Vam se nepodari detekovat, ze nejde o uzivatele ale robota) tak to proste PhantomJS muze vyrendrovat a ulozit.

Asi zasadni problemy jsou:

- jak skryte ulozit informaci do browseru (treba klic na dekodovani dat), ktery zadny wget/ripper neuvidi. Napada mne cookie, dlouho nacachovany obrazek/objekt (otazka je jak presvedcit browsery aby to nereloadovaly) a http://stackoverflow.com/questions/2035075/using-window-name-as-a-local-data-cache-in-web-browsers

Vsechno popsane lze (myslim) jednoduse v PhantomJS udelat (i local storage).

- jak unikatne identifikovat bez javy a flashe browser (takovy zjednoduseny panopticlick). napada mne user-agent, rozliseni, pluginy, jazyk, vhodna cookie.

Z canvasu (JS) muzete ziskat take informace o browseru (tusim ze antialiasing je resen ruzne, ale nejsem si jisty).

Dle mého názoru jste příliš optimistický. Hypoteticky, kdyby po mě kamarád chtěl, abych mu naprogramoval vycucání té stránky, tak se vůbec nebudu obtěžovat s nějakou deobfuskací toho javascriptu a hledáním, jak ten text vytáhnout nějak chytře z toho balastu, kterým ho obalíte. Místo toho vezmu jádro prohlížeče a obalím ho kódem, který bude podle nějakého pravidla procházet jednotlivá URL, a vždy po zobrazení obsahu zastaví všechny skripty, ten obsah vytáhne (např. na bázi CTRL+A, CTRL+C, ať se bavíme o úplně jednoduchém a hodně účinném řešení) a přejde na další stránku. Pro jednorázové vytáhnutí vašich dat to bude bohatě stačit.

Ehm, popsal jste PhantomJS (=jádro prohlížeče) a k jednodussimu pouziti pro scraper ("ukladac stranek/obsahu") muze slouzit prave ta zminovana knihovna pjscrape.

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Zabraneni kopirovani obsahu WWW
« Odpověď #33 kdy: 19. 09. 2015, 18:23:46 »
Schvalne jsem se podival, jak moc je to slozite. A je to doslova par radek kodu (kdyz si odmyslime zpracovani chyb).

Kód: [Vybrat]
var page = require('webpage').create();
page.open("http://example.com", function (status)
{
    if (status !== 'success')
    {
        console.log('FAIL to load the address');           
    }
    else
    {
        console.log('Success in fetching the page');
        console.log(page.content);
    }
    phantom.exit();
});
^Tim jsem obesel jakekoliv nastrahy v JavaScriptu. Jsem si jisty, ze to odpovida definici "nenarocnosti".

Pristup ke cookies je jednoduse pres objekt page.cookies. Jak jsem psal, tudy cesta opravdu nevede ;).

Re:Zabraneni kopirovani obsahu WWW
« Odpověď #34 kdy: 19. 09. 2015, 19:00:48 »
Pritomnost ochrany je duvod to prolomit. A nemusite nutne tvrdit, ze je to neprolomitelne. Staci mit vyrazne vystavene na kazde strance upozorneni, ze je tam nekde ukryto id uzivatele (nejlevnejsi varianta je skoncit jen u toho upozorneni ;D).
+1

Ale ono nemusi platit, ze KAZDY ucet ma stejnou formu steganografie. Pokud jsou ruzne (a ukladaji se k uctu), tak jen dva ucty nestaci.
pravděpodobnost?

Pokud je ten styl pouzity ve strance, jak jsem psal, tak je jedno kolikrat to minimalizujete, cervene pozadi bude porad cervene pozadi. U JS to stejne - pokud to neco dela, tak to tezko minimalizator odoptimalizuje pryc. HTML to stejne - pokud mam ve vstupu tabulky sirky 120, tak na vystupu budou taky, jinak nemluvime o minimalizaci.
ok tak ten plain text a pak převod třeba do markdownu

Ano, ale musite mit jistotu, ze se ztrati i vsechna metadata (tj. dobre znat konverzni nastroj) a ze "watermark" je opravdu porusen kompresi (nemusi nutne platit). Pokud nevite CO je znacka, tak mate problem, protoze krome "reseni" zahozeni obrazku nemate jistotu nikdy.
ok, uznávám

Napadaji me neviditelne (nebo velmi spatne viditelne) unicode znaky. Zalezi na obsahu, ale vetsinou budou ty obrazky chybet.
Změna kodóvání unicode-cp1250-unicode eliminuje vše.

Pokud si musim psat vlastni tool, tak uz mi prijde, ze to nebude delat clovek s prumernymi IT znalostmi. Prumerne IT znalosti IMO konci u pouzivani e-mailoveho klienta.
Jsme na odborném IT webu, průměrné tu neznamená umět udělat ve wordu graf.

Nástroje kolem nodeJS nabízejí takové možnosti, že u většiny "ultra mega bezpečných" webů je to jen otázka motivace se do nich pouštět. Což u spousty není, protože úroveň obsahu často nestojí ani za přečtení.


noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Zabraneni kopirovani obsahu WWW
« Odpověď #35 kdy: 19. 09. 2015, 20:15:10 »
Ale ono nemusi platit, ze KAZDY ucet ma stejnou formu steganografie. Pokud jsou ruzne (a ukladaji se k uctu), tak jen dva ucty nestaci.
pravděpodobnost?
No, ale jen z dvou uctu (pokud je napr. 10 forem id a kazdy ucet ma stale prave 2) se jen tak nepozna, co je id a co ne. Ale jiste, uz to zdaleka neni jednoduche reseni a IMO je to porad jen vyhozeny cas. Silne mi to pripomina klasicke "security through obscurity".

Jsme na odborném IT webu, průměrné tu neznamená umět udělat ve wordu graf.
V tom pripade vsechny navrzene ochrany zvladne "prolomit" i clovek se silne podprumernymi znalostmi IT. Stahnout si nebo dobastlit velmi jednoduchy webcrawler co umi JS nebude problem - viz ten postovany kod.

Nástroje kolem nodeJS nabízejí takové možnosti, že u většiny "ultra mega bezpečných" webů je to jen otázka motivace se do nich pouštět. Což u spousty není, protože úroveň obsahu často nestojí ani za přečtení.
Silne pochybuji, ze tazatel pracuje na takovem "mega bezpecnem webu" (nic ve zlem, ale ptal by se vubec tu, kdyby na nem pracoval?). K tem nastroju: jn, a nejsou potreba ani prilis velke znalosti. Je hodne luxusni mit moznost spustit headless prohlizec a vysosat data jen s par radky kodu. Rekl bych, ze vetsina lidi co nekdy delala stranky (coz z mladych bude asi hodne) nebude mit zadny problem ten skript slepit/najit v kratkem case.



Stale mi to vychazi jen jako ztrata casu/penez (technicka fakta, nic ideologickeho).

Sice to muze zabranit nekomu to vyvesit na webu, ale nikdy vsem. A chci videt, jak nejaka firmicka z CR bude zalovat nekoho z nejakych ostrovu v tramtarii. Nema sanci...

Budto je tam pridana hodnota (napr. codeschool, kde krom videii jsou i skvele testy), nebo neni a pak asi jit radeji do tech reklam. Pripadne do takoveho toho lineho modelu - predplatitele dostavaji clanky drive - ale na to je potreba stale novy a dobry obsah.

To pomalu vypada, ze jsme tu nekomu zadarmo vypracovali analyzu :D.

Kit

Re:Zabraneni kopirovani obsahu WWW
« Odpověď #36 kdy: 19. 09. 2015, 20:36:29 »
To pomalu vypada, ze jsme tu nekomu zadarmo vypracovali analyzu :D.

Ne "někomu", ale "všem", kteří to dočetli až sem. Pro mne to také bylo docela inspirativní - i když spíš v opačném významu, než v jakém byl položen dotaz.

DoNotStealThisWebsite:)

Re:Zabraneni kopirovani obsahu WWW
« Odpověď #37 kdy: 19. 09. 2015, 21:25:24 »
Dle meho nazoru na to staci pomerne malo, treba jen javascript skladat z fragmentu a ty obcas prohodit, zamenit jmen promennych (coz je trivialni ukol na prvni zamenu, ale zpetne se s tim pekne potrapite-vlastni zkusenost). Proste udelat to tak, aby kazda stranka byla prilis dynamicka i kodem.

PhantomJS zpracovava stranku jako prohlizec (protoze to je prohlizec - WebKit), takze tohle solichani je uplne k nicemu. Pokud to uvidi koncovy uzivatel (a Vam se nepodari detekovat, ze nejde o uzivatele ale robota) tak to proste PhantomJS muze vyrendrovat a ulozit.

Ano, jenze nekde jsem psal, ze ta stranka neni uplne staticka (je v ni zobrazen nejaky vykres) a ten neni zobrazeny cely-jen to co je v okne videt, takze nacist a vyrendrovat stranku NEstaci (vysledkem budou jen fragmenty toho co chcete). Predstavte si to jako mapy.cz, predstava ze je stahnete PhantomJS na 20 radek je nerealne. Podle me to nepujde ani na 100 radek.

Vytahnout dalsi casti vykresu znamena pristup k javascript promennym, coz minimalne velmi zkomplikuje ta obfuskace (pro automatizovane vytazeni).

JS

Re:Zabraneni kopirovani obsahu WWW
« Odpověď #38 kdy: 19. 09. 2015, 21:53:44 »
Vytahnout dalsi casti vykresu znamena pristup k javascript promennym, coz minimalne velmi zkomplikuje ta obfuskace (pro automatizovane vytazeni).

Vazne? Ja bych se vykaslal na JS, jen si s tou strankou chvili hral a podival se, jake requesty chodi ven. A pak bych proste posilal nejake podobne (typicky tam asi budou nejake souradnice dlazdic) dokud bych to cele nestahl.

A nejlepsi je zacinat takove stahovani v patek vecer, to neni cely vikend nikdo, kdo by koukal na logy a zabanoval te. :-)

Priznej si to, je to predem prohrany boj.

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Zabraneni kopirovani obsahu WWW
« Odpověď #39 kdy: 19. 09. 2015, 22:11:07 »
Ano, jenze nekde jsem psal, ze ta stranka neni uplne staticka (je v ni zobrazen nejaky vykres) a ten neni zobrazeny cely-jen to co je v okne videt, takze nacist a vyrendrovat stranku NEstaci (vysledkem budou jen fragmenty toho co chcete). Predstavte si to jako mapy.cz, predstava ze je stahnete PhantomJS na 20 radek je nerealne. Podle me to nepujde ani na 100 radek.

Vytahnout dalsi casti vykresu znamena pristup k javascript promennym, coz minimalne velmi zkomplikuje ta obfuskace (pro automatizovane vytazeni).

Asi jsem to prehledl (to s mapou). I na to by sel pouzit ten PhantomJS - umi to v pohode simulovat vstup, nac se tedy zatezovat deobfuscaci? Ale jak pise kolega nade mnou, jednodussi bude proste odhadnout komunikacni protokol (neverejne api). Nebo budete obfuscovat i api? :D To se bude skvele udrzovat ^^ a tedy proti PhantomJS stale neefektivni (prestoze mirne casove narocnejsi na implementaci).

Re:Zabraneni kopirovani obsahu WWW
« Odpověď #40 kdy: 19. 09. 2015, 22:14:53 »
Dle meho nazoru na to staci pomerne malo, treba jen javascript skladat z fragmentu a ty obcas prohodit, zamenit jmen promennych (coz je trivialni ukol na prvni zamenu, ale zpetne se s tim pekne potrapite-vlastni zkusenost). Proste udelat to tak, aby kazda stranka byla prilis dynamicka i kodem.

PhantomJS zpracovava stranku jako prohlizec (protoze to je prohlizec - WebKit), takze tohle solichani je uplne k nicemu. Pokud to uvidi koncovy uzivatel (a Vam se nepodari detekovat, ze nejde o uzivatele ale robota) tak to proste PhantomJS muze vyrendrovat a ulozit.

Ano, jenze nekde jsem psal, ze ta stranka neni uplne staticka (je v ni zobrazen nejaky vykres) a ten neni zobrazeny cely-jen to co je v okne videt, takze nacist a vyrendrovat stranku NEstaci (vysledkem budou jen fragmenty toho co chcete). Predstavte si to jako mapy.cz, predstava ze je stahnete PhantomJS na 20 radek je nerealne. Podle me to nepujde ani na 100 radek.

Vytahnout dalsi casti vykresu znamena pristup k javascript promennym, coz minimalne velmi zkomplikuje ta obfuskace (pro automatizovane vytazeni).
tak si o těch technologiích něco nejdřív zjistěte, sice phantomJS neznám, ale pokud se v tom dají dělat testy UI, tak to musí umět emulovat myš a možná i vstup z klávesnice. Takže budu rolovat, snímat výřez viewportu a pak to složím jako panoramatickou fotografii, k čemuž stačí imagemagick.

Prostě to nestojí za náklady s tím spojené, protože k překonání stačí umět trochu skriptit a chvíli se nudit.

P.S.: Za 1 minutu se strejdou googlem:

Kód: [Vybrat]
http://ngryman.sh/articles/simulate-mouse--touch-events-with-jquery-in-phantomjs-and-the-browser/
Kód: [Vybrat]
http://stackoverflow.com/questions/16561582/how-to-scroll-down-with-phantomjs-to-load-dynamic-content

Re:Zabraneni kopirovani obsahu WWW
« Odpověď #41 kdy: 19. 09. 2015, 22:19:24 »
To pomalu vypada, ze jsme tu nekomu zadarmo vypracovali analyzu :D.

Ne "někomu", ale "všem", kteří to dočetli až sem. Pro mne to také bylo docela inspirativní - i když spíš v opačném významu, než v jakém byl položen dotaz.
+1
Aspoň jsem měl důvod nad tím zapřemýšlet trochu do hloubky. Mě by osobně nenapadlo vymýšlet takový nesmysl - to zavání IT panicem, nebo korporací.

Ono ani to AdobeDRM nebude samospása, protože se na to okamžitě po implementaci v HTML5 (pokud už se tak nestalo, nesleduji) vrhnou mraky lidí. A co si budem povídat, software od Adobe je kapitola sama o sobě, bohužel velmi smutná.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Zabraneni kopirovani obsahu WWW
« Odpověď #42 kdy: 19. 09. 2015, 22:28:33 »
Tak to vypada spatne. Jeste by sel prestrihnout kabel od serveru. Ale zkomplikovalo by to trochu splneni pozadavlu na to, aby prihlaseny uzivatel nebyl omezovan v praci.

DoNotStealThisWebsite:)

Re:Zabraneni kopirovani obsahu WWW
« Odpověď #43 kdy: 19. 09. 2015, 22:45:47 »
Musim rici, ze vlakno mne opravdu pobavilo, i kdyz to jsem zrovna neocekaval. Tem par co prispeli technickymi detaily dekuji.

Abych trosku prizivil plamennou diskusi o zbytecnosti ochran (podivam se sem se zajmem na "analyzu" v pondeli), tak treba takove firmy.cz jsou (minimalne byly) chranene pomerne trivialne: stahnete jen urcity pocet stranek za zadany cas, potom blokace s prodluzujicim se casem. Ale i tato primitivni ochrana stacila nekolika IT subjektum, aby vzdaly umysl jejich stazeni (ja jsem je sosnul pomoci shellscriptu a zde by to zvladnul asi kdekdo, ale uz jen mit vice IP adres je zjevne problemem). Pro typaly: ne, neplanujeme udelat kopii firmy.cz :-).

Ad obfuskace: zivi mne z casti reverse engineering, sice na trosku nizsi urovni - strojoveho kodu. Obfuskace kodu je naprosto fatalni, nazory ze to je nanic zavani absolutni neznalosti problematiky. Prave obfuskovany kod dokaze hodne zkomplikovat zivot (a ten obfuskator muze byt opravdu i primitivni na implementaci, staci kdyz to tupe ale opravdu hodne zasmodrcha). PhantomJS je u takto obfuskovaneho kodu nanic, kdyz nevite jmena promennych/objektu, nijak se k nim nedostanete. Delat snapshoty vyrenderovanych stranek take prilis nepomuze (viz muj prispevek vyse).

Tak a ted' se do mne muzete pustit :-). Treba by slo rozvest jak se ma projekt o kterem nic nevite uzivit reklamou. Mozna by nekdo mohl poradit treba lidem z Autodesku a Dassaultu (CATIA) poradit, ze jejich soft take bude lepsi dat zdarma a neresit nejake priblble ochrany, kdyz tam muzou prdnout do kazdeho vykresu reklamu a zit z ni (nebo to lepe dat rovnou opensource a zit ze supportu).

123132132132

Re:Zabraneni kopirovani obsahu WWW
« Odpověď #44 kdy: 19. 09. 2015, 23:03:09 »
trosku cejtim trolling (poradit autodesku vypnout ochrany, opensource a podpora), nicmene odpoved jste uz asi dostal - podle me docela trivialni a ucinne bude tam napsat ze to ma vsechnno vodoznak s ID a timpadem se na to 99% lidi vykaslalo. To ze vam to 1 % lidi prekona z hecu protoze muzou vas asi az o tolik zisku nepriravi. Jde preci jen o cost/benefit reseni.