10
bře 08

Strmilov má svou webkameru aneb jak přijít o nervy s IE

IT

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ářů

Nepouzivat MSIE. Ani v sebeobrane. Nemam stroj kde by bezelo cokoliv novejsiho od Microshaftu nez MSIE 5.2 for Mac a jsem happy. Safari, Camino, Konqueror, Opera, iCab, Firefox - to je linka po ktere bych zleva postupoval v hodnoceni kvality webovych browseru.
» Odpovědět 13.03.2008 18:31 | Vladimír Vondruš | web | Není jiná možnost
Stránky mají bohužel zhruba 80% návštěv z IE (a to se není čemu divit), takže se "optimalizaci" a nervům s IE nevyhnu... už se "těším" na větší rozšíření IE 7 a nový IE 8, jaké další překvapení mi přinese.
Software wbekamery pracuje vyuborne, ale hardware zapadl snehem.

Adolf Ceska, Victoria, Britska Kolumbie, Kanada