Princip
Pokud chcete překonat, přechytračit, zničit, využít nějaký systém, musíte nejdříve zjistit jak funguje. Flashové přehrávače mohou přehrávat konkrétní soubor, nebo soubory z playlistu. Přehrávač na Bandzone si bere cesty k mp3 souborům z XML souboru. K tomuto playlistu se tedy musíme dostat, abychom získaly adresy oněch mp3 skladeb.Zdrojový kód
Zdrojový kód je nutno prohlédnout jako první. Zkusil jsem vyhledat koncovku XML, která by poukazovala na přímý odkaz na playlist. Obvykle se podaří nalézt kód přehrávače. Z toho kódu je nutné empiricky získat adresu playlistu. Někdy to není tak snadné, proto je nutná dávka zkušeností s flash přehrávači a jejich vkládáním do stránky (pomocí HTML nebo Javascriptu).Playlist pro skupinu How No jsem našel v pohodě asi po třech minutách.
Ve zdrojové kodu je:
howno%2Fplaylist.xmlto odpovídá
howno/playlist.xmlLogicky jsem doplnil doménu a vyšlo to.
http://bandzone.cz/howno/playlist.xmlPři otevření však prohlížeč zobrazí pouze hlášku o nepovoleném přístupu. Hoši z Bandzone to mají pořešený. Přemýšlel jsem jak. Nejspíše flash přehrávač posílá při žádosti o playlist ještě nějaký dodatečný hash, ten však bude složité odhadnout. Každopádně tato metoda funguje na 90% webů, kde je přehrávač. Většinou nikoho nenapadne ošetřit možnost zjištění adresy souborů.
Jelikož jsem se nechtěl vzdát, nasadil jsem trochu jiné metody.
Odposlech síťového zařízení
Ten nikdy nezradí. Playlist jsem měl stažený za 10 sekund. Odposlech však klade důraz na trochu pokročilejší znalosti uživatele. Zamezit odposlechu také není jednoduché. Pokud si pustíte přehrávač u sebe na počítači, v tu chvíli protékají vaším síťovým zařízením pakety, obsahující i onen playlist. Není pak problém si zpětně sestavit co bylo přeneseno. Jak to provést, si zjistěte každý sám. Hochy z Bandzone už víc nasírat nebudu.Ochrana
Jak tedy zabezpečit svoje nicotné přehrávače před krutými uživateli? První možnost byla již nastíněna. Při žádosti o playlist posílat i předem dohodnutý hash. Může sestávat z názvu playlistu a seedu. Také bych určitě kontroloval referenční IP adresu, pokud by přišel požadavek na playlist z jiného než mého serveru, tak je požadavek zamítnut. Je důležité mít toto u velkých serverů ošetřené. Není problém napsat skript, který na základě zadaných názvů kapel projde celý server a postahuje jejich mp3. Takový skript jsem si pro sebe napsal a používám ho při stahování ze serveru Magnatune.com. O tom až příště.Ošetření odposlechu je také jednoduché. Místo přenosu přes HTTP bych použil HTTPS. Nevím však, zda Flash umožňuje komunikaci přes tento protokol. Je to jen moje teorie. Také je možné XML playlist posílat v zašifrované podobě. Následně ho proti klíči rozšifrovat až v přehrávači. Opět ale narážíme na možnosti Flash platformy.
Odkazy:
