Site Network:



If a man does not keep pace
with his companions, perhaps
it is because he hears a
different drummer.

Henry David Thoreau

Maskovanie URL adresy v odkazoch

V tomto článku sa naučíme, že adresa, resp. link nemusí mať nevyhnutne pôvodný tvar http://www.domena.sk, ktorý z každodenného browsovania tak dobre poznáme. Vysvetlime si, čo všetko sú naše prehliadače schopné považovať za link a ukážeme si samozrejme, ako takéto linky vytvárať.

Na začiatok je však potrebné pochopiť, prečo by sme mali tejto činnosti priradiť zvýšenú pozornosť. Je to samozrejme otázkou bezpečnosti. Utočník, spammer alebo scammer, Vás môžu chcieť poslať niekam, kam by ste Vy v normálnej situácii ísť nechceli. Lenže, prísť napríklad na to, že adresa http://wtf@2130706433 je to isté, ako http://localhost, a teda ekvivalent zápisu http://127.0.0.1, nie je úplne jednoduchá a už vôbec nie jednoznačná úloha. Ukážeme si preto v pár kapitolách, na aké adresy by sme si mali dať pozor.

1. Decimálny zápis

Každá stránka má určitý názov domény. Každá doména má priradenú jednu IP adresu. Našim prehliadačom je pritom jedno, či ich požiadame o otvorenie stránky napísaním mena domény, alebo IP adresy. Pokiaľ teda predpokladáme, že doména priklad.org má IP adresu 206.191.3.13, potom nám zápisy http://www.priklad.org a http://206.191.3.13 vrátia jednu a tú istú stránku. Jednoduché.

2. Prihlasovanie

Na každý server by sme sa mohli prihlásiť, teda aspoň za predpokladu, že by to server chcel. Väčšina z nich však pre bežné účely prihlasovanie nevyžaduje a preto ho bohapusto ignoruje. Pri klasickom prihlasovaní zadávame prihlasovacie meno, prípadne aj heslo a nakoniec názov domény, napríklad user:nbusr123@www.priklad.org. Mohli by sme teda našu adresu http://www.priklad.org upraviť na tvar http://www.playboy.sk@206.191.3.13, čo by nás v nepozornej chvíľke mohlo presvedčiť o tom, že pristupujeme na stránku playboy.sk. Takýto spôsob maskovania adresy však už väčšina prehliadačov v dnešnej dobe nepovoluje a prinajmenšom Vás upozorní, že sa niečo deje.

3. Hexadecimálny zápis znakov

Ďalšia jednoduchá možnosť zápisu, s ktorou sa už väčšina ľudí stretla, či si to uvedomuje, alebo nie. V adresach je niekedy potrebné uvádzať aj neobvyklé znaky, akým je napríklad medzera. Bolo preto potrebné vytvoriť systém, ktorý by tieto znaky dokázal rozlúštiť. Riešením sa stal zápis týchto znakov v hexadecimálnej podobe, kde napríklad spomínanú medzeru vyjadríme pomocou zápisu %20, písmeno "a" ako %61, písmeno "b" ako %62, písmeno "c" ako %63 a tak ďalej. Adresu http://www.priklad.org/priklad teda v konečnom dôsledku môžeme zapísať ako http://www.priklad.org/p%72i%6B%6Ca%64.

4. DWord

DWord znamená zápis prostredníctvom dvoch binárnych slov dĺžky 16 bitov. Aj do takéhoto, prvotne nič nehovoriacemu tvaru môžeme ktorúkoľvek adresu prepísať. Máme doménu priklad.org na IP adrese 206.191.3.13. Použijeme teda nasledovný spôsob prepočtu:
( ( 206 * 256 + 191 ) * 256 + 3 ) * 256 + 13 = 3468624653
čím dostaneme nový zápis tej istej adresy http://3468624653.

Ten však môžeme upravovať ešte trochu ďalej, konkrétne k získanej hodnote môžeme pripočítať ľubovolný násobok sumy 2564 = 4294967296. Môžeme tak učiniť preto, lebo keď sa výsledné číslo skonvertuje do svojej základnej digitálnej podoby, posledných 8 hexadecimálnych číslic zostane nezmenených. Platí teda, že všetko, čo je na ľavej strane navyše ide z hľadiska prehliadača preč.

5. Osmičková sústava

Pokiaľ by niekto začínal mať pocit, že viac už toho byť nemôže, chcem vopred upozorniž, že môže. Napríklad prevod z decimálnej do osmičkovej sústavy :] Naša vymyslená IP adresa bola 206.191.3.13. Jednoduchým spôsobom teraz každú z jej štyroch častí prevedieme do osmičkovej sústavy. A teda: 206 = 316, 191 = 277, 3 = 3, 13 = 15.
V tomto bode sme ale s úpravami neskončili. Aby prehliadaču bolo jasné, že mu chceme IP adresu zadať v osmičkovej sústave, musíme pred každým jej číslom uviesť jednu 0 (slovom: nulu). Výsledná adresa, http://0316.0277.03.015 je napriek tomu, že vyzerá rôzne, ešte stále odkazom na stránku http://www.priklad.org. A aby som nezatajil nič z toho, čo viem, prezradím Vám aj to, že rovnako, ako v predchádzajúcom príklade, aj tu môžeme čo-to pridať. Napríklad také nuly na ľavú stranu ktoréhokoľvek čísla. Zápisy http://0316.0277.03.015 a http://000316.0277.003.000000015 teda posudzuje prehliadač rovnako.

6. Hexadecimálne vyjadrenie

Postup je jednoduchý; IP adresu danej domény prevedieme do už spomínaného Double Word tvaru a ten potom skonvertujeme do hexadecimálnej podoby. V našom prípade teda získame nasledovné ekvivalenty pre adresu http://www.priklad.org:
http://206.191.3.13
http://3468624653
http://0xCE0xBF0x030x0D

Tak, ako sme v prípade vyjadrenia v osmičkovej sústave museli popridávať na začiatok čísel nulu, museli sme aj teraz použiť predponu 0x. Tú však nemusíme použiť všade a zápisy http://0xCE0xBF0x030x0D a http://0xCEBF030D sú zase raz ekvivalentmi. Veselé je, že v tomto prípade môžeme na ľavú stranu znovu pridať čo len chceme. Tým pádom sú ekvivalentnými výrazmi aj nasledovné odkazy:
http://0xCEBF030D
http://0x9EBF37CEBF030D

7. Trochu kreativity

Jednotlivé tvary môžeme kľudne používať súhrnne v jednom vyjadrení odkazu. Napríklad teda takto:
http://0xCE.191.03.0x0D

Prípadne môžeme bezbodkovú verziu DWord zápisu upraviť na mierne bodkovú takýmto spôsobom:
3 * 256 + 13 = 781
http://206.191.781

Okrem toho je prípustné hexadecimálny zápis porozdeľovať podľa miery Vačej momentálnej nálady na všetky nasledujúce tvary:
http://0xCE.0xBF030D
http://0xCE.0xBF.0x030D

A pokiaľ chceme, môžeme to isté spraviť aj v rámci osmičkovej sústavy:
http://0316.0277315
http://0316.0277.0315

A koniec koncov, keď už hovoríme o kreativite, môžeme to všetko nanovo pospájať do nového, absolútne nepochopiteľného celku:
http://0316.0xBF030D
http://206.0277.0x030D

Ako sa teda brániť?

Primárna je prevencia, úreto najlepšou obranou je neklikať na každý odkaz, ktorý zbadáte. Pokiaľ sa ale neviete zbaviť toho strašného nutkania kliknúť na ľubovoľne zle vyzerajúci link, môžete si danú adresu pozrieť napríklad cez NSLookup, či obyčajný Ping.