Standardní nestandardnost IE
Microsoft připravuje update IE (Microsoft.com, 27. ledna 2004), po jehož instalaci bude znemožněno předávat uživatelské informace (jméno a heslo) protokolů HTTP a HTTPS přímo v URL adrese. Podporou adresy typu http(s)://username:password@server/resource.ext nyní oplývají všechny verze Internet Exploreru a Windows Exploreru. Microsoft svůj update podporuje argumentem, že tato vlastnost bývá zneužívána k podvrhování odkazů. Mě osobně by tedy spíše zajímalo, proč Microsoft vůbec něco takového implementoval, když RFC 1738 (Uniform Resource Locators (URL)) vůbec předávání těchto informací na protokolu HTTP nepřipouští a RFC 2396 (Uniform Resource Identifiers (URI): Generic Syntax) to vysloveně nedoporučuje na protokolu kterémkoli. (Tip: Adam Hauner)
Za účelem pousmání-se stojí za pozornost článek 833786 (celý název svou délkou naprosto nevhodný pro nadpis i text odkazu zní: Postupy, které vám mohou pomoci identifikovat podvodné weby (s falešnou identitou) a hypertextové odkazy se zlými úmysly a chránit vás před nimi :-)) Ale cituji z článku:
Nejúčinnější ochranou před hypertextovými odkazy se zlými úmysly je neklepat na ně. Místo toho zadejte adresu URL zamýšleného cíle do pole adresy sami. Jestliže do pole adresy zadáte adresu URL ručně, můžete ověřit informace, pomocí kterých aplikace Internet Explorer získává přístup k cílovému webu. Chcete-li takto postupovat, zadejte do pole Adresa adresu URL a stiskněte klávesu ENTER.
Uznávám, ba co více, podporuji osvětu uživatelů před různými záškodníky/podvodníky. Obávám se však, že na základě doporučení takovýchto článků uživatelé buďto na používání internetu zanevřou, nebo (a to spíše) se přestanou o bezpečnost zajímat, protože by je v práci neskutečně zdržovala.
Související:
- IE nebude v URL podporovat zavináč (CD-R server, 29. ledna 2004)
- Publikováno: 1. února 2004
- Trvalý odkaz: http://www1.mraveniste.org/weblog/2004/02/01-ie-url-update.html
- Autor: Jan Bien
Komentáře
Problém je v tom, že MSIE má další chybu. Když napíšete odkaz, který před @ obsahuje ještě znak na pozici \01 v ASCII, podaří se vám dosáhnout toho, ž e v Location baru bude vidět jen část adresy před \01, ale stránka se stáhne z adresy za \01. (http://www.zapthedingbat.com/security/…)
Místo aby opravili vlastní chybu, radši zruší používanou feature. Úžasné.
To Richard H.: Jelikož specifikace URL protokolu HTTP předávání jména a hesla v adrese nepřipouští, tak to chápu. Být výrobcem, udělal bych to samé.
Mám pocit, že jsem někde narazil na tvrzení, že to naopak v nějakém RFC je.
To Richard H.: Cituji z RFC 1738:
To Jan Bien: RFC 1738 byla aktualizována RFC 2396, takže by mělo být nahlíženo spíše do ní.
RFC 2396 použití jména a hesla nevylučuje, jen nedoporučuje, citace z bodu 3.2.2:
Pro jistotu výtah z RFC 2119:
To Adam Hauner: Adame, ale jak sám cituješ:
Tedy některá (ne všechna) URL shémata používají tento formát. V úvodu RFC 2396 je psáno, že upravuje a doplňuje RFC 1738 a že URI pro jednotlivá shémata (myšleno HTTP, FTP, ...) budou v budoucnu součástí samostatného dokumentu, který zřejmě ještě neexistuje (nenašel jsem ho). Takže soudím, že specifikace konkrétních schémat platí ještě z RFC 1738. Nahlédl jsem také do RFC 2616 (HTTP 1.1), kde se připouští jen tento formát URL:
http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]].To Jan Bien: Požadavky přes HTTP (1.1) se posílají trochu jinak než jako celé URL. Rozděluješ je na část za hostem, samotného hosta posíláš na dalším řádku a autorizační údaje se posílají kryptované zvlášť a to jen, když je webserver požaduje.
Ostatně si všimni, že v uvedeném formátu chybí část za ohrádkou (#) - serveru se také neposílá, používá ji jen user-agent, přesto je součástí URL.
Souhlasil bych s tvrzením, že podpora user:password v user-agentech je zvyklostní; restrikce v RFC přišly až po implementaci.
To Adam Hauner: Jasné, takovouto formulací mohu souhlasit. Navíc dík za objasnění toho HTTP - já si myslel, že user:password je předáván jako součást URL až k webserveru. :-)
Váš komentář
K článku nelze připojit komentář, Mraveniště bylo zakonzerováno.