Strmilov má svou webkameru aneb jak přijít o nervy s IE
Konečně jsem dal na stránky Strmilova naší novou webkameru. Myslel jsem, jak je to jednoduché, ale nakonec jsem strávil dvě hodiny života tvořením hacku pro JEdiný Správný PRohlížeč.
Kamera dedikovaná pro návštěvníky stránek www.strmilovsko.cz je přístupná na jisté IP adrese a jistém portu. Až sem žádný problém, kamenem úrazu je nutnost přihlášení se pomocí uživatelského jména a hesla.
Takhle by to mělo být...
Tušil jsem, že jde uživatelské jméno a heslo nějak vecpat do URL a po troše googlení jsem narazil na RFC pojednávající o formátu URL. Zde jsem se ujistil, jak to tedy má být:
3.1. Common Internet Scheme Syntax While the syntax for the rest of the URL may vary depending on the particular scheme selected, URL schemes that involve the direct use of an IP-based protocol to a specified host on the Internet use a common syntax for the scheme-specific data: //<user>:<password>@<host>:<port>/<url-path> Some or all of the parts "<user>:<password>@", ":<password>", ":<port>", and "/<url-path>" may be excluded. The scheme specific data start with a double slash "//" to indicate that it complies with the common Internet scheme syntax. The different components obey the following rules: user An optional user name. Some schemes (e.g., ftp) allow the specification of a user name. password An optional password. If present, it follows the user name separated from it by a colon. The user name (and password), if present, are followed by a commercial at-sign "@". Within the user and password field, any ":", "@", or "/" must be encoded.
Pro naši strmilovskou kameru adresa tedy vypadá takto:
http://strmilov:strmilov@88.146.207.185:8083/cgi-bin/video.jpg
Během pár minut jsem měl hotový JavaScript, který otevře malé okénko s obrázkem z webkamery, který se každých 15 sekund obnoví. Kód, parádně fungující ve Firefoxu i Opeře.
...takhle to chápe IE...
Už jsem se chystal odejít k serveru a provést aktualizaci a jen tak na zkoušku stránky pustit v Exploreru. Na mém PC se Explorer spouští pomocí Win+R příkazem iexplore, což je doufám dost silné opatření, aby byl každý, kdo po JESPRu jen zatouží, odrazen. IE hned po startu začal načítat cosi z www.microsoft.com (hm... domovskou stránku jsem neměnil od instalace), díkybohu je tak pomalý, že jsem stačil zmáčknout Stop. IE sedmičku nemám, protože mi nějak nesedla.
A co mi tedy IE/JESPR provedl? Odmítl načíst obrázek z webkamery, prý nějaká špatná syntaxe. Že by další drobný bug, kterého si nikdo nevšiml? Po dalším googlení jsem zjistil, že It's not a bug, it's a feature. Na blogu jednoho ASPera (nejspíše závislém na IE) jsem se dočetl, že tuto vlastnost má na svědomí nějaký patch od MS, nejspíše jako obrana proti phishingu. Adresa by mohla být například tohoto tvaru:
http://www.csas.czOS00MjsiQmxhY2sgQm9va3MiOyJCbGFjayBCb29rcyI7IjEiOyI2LzYiOzIwMDAtMjAwMDsiRGlOyIxMy8yMyI7MjAwNy0yMDA4OyJEaXZYIC0gVFZSaXAiOy07CjQtNjsiUGFydGnoa2EgSVQiOyJU2:lol@www.cracker.com/hijackme.php
Člověk by tedy viděl v adrese www.csas.cz, "hmm to je adresa webu České Spořitelny, nemám se co bát", ale adresa by přitom vedla na stránku www.cracker.com/hijackme.php.
Jenže lidé v Microsoftu co nedovedou zabezpečit, zakáží, takže se na adresu toho typu z IE prostě nedostanete. Dotyčný ASPer to opravil úpravou registrů a tím vlastně vypnutím onoho patche.
...a takto to řeší ostatní
Firefox při vstupu na URL uvedenou výše vyhodí hlášku, zda opravdu chci pokračovat, Opera hlášku vyhodí také. Jen IE si postaví hlavu a nepustí mě dál.
Nezbývá než hackovat IE
Takže mi nezbylo nic jiného, než vygooglit co nejméně hnusný hack pro IE, aby se i v něm obrázek zobrazil. IE obrázek z webkamery zobrazí, ale v URL nesmí být uživatelské jméno a heslo, což způsobuje, že se IE při (naštěstí jen prvním) načtení obrázku ptá na heslo.
Podmíněné komentáře byly asi nejmenší zlo - pro více informací link na msdn.com, mimochodem skvělá ukázka diskriminace Firefoxu, jen v IE se stránka zobrazí normálně, Firefox nemá šanci, v Opeře trochu rozházené. Pomocí nich jsem tedy vytvořil verzi pro IE (načtení obrázku s dotazem na heslo) a pro normální prohlížeče.
Výsledek, který v IE za moc nestojí, si můžete prohlédnout na www.strmilovsko.cz.
» Přidat komentářDiskuze: 3 komentářů
Adolf Ceska, Victoria, Britska Kolumbie, Kanada