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

  1. <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4.  <title>Krypta.cz - Zßkladnφ obrana proti p°evzetφ domΘny na stran∞ klienta</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 art155.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( "Zßkladnφ obrana proti p°evzetφ domΘny n" );
  55. var SectionURLs=new Array( "155" );
  56.  
  57. var BrothersNames = new Array("BezpeΦnost a autorizace na WWW I. : protokol HTTP","BezpeΦnost a autorizace na WWW II.","HTML problΘm :  cizφ k≤d a formulß°e","PφÜeme bezpeΦnou webovou aplikaci - dφl 1.","K php upload bug zve°ejn∞n exploit, Apache + mod_ssl","Zßkladnφ obrana proti p°evzetφ domΘny na stran∞ klienta","");
  58. var BrothersIDs = new Array("32","33","110","122","154","155","");
  59. //=====INFO======
  60. ItemName='Article155';
  61.  
  62. InIFrame='No';
  63. TableNum=2; 
  64. ItemID=155; 
  65. ArticleType='3'; 
  66. Action='articles'
  67. ItemTitle='Zßkladnφ obrana proti p°evzetφ domΘny na stran∞ klienta';
  68. ItemComment='Zßkladnφ obrana proti p°evzetφ domΘny na stran∞ klienta';
  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_40Seznam.cz' ;
  78. AuthorID='1' ;
  79. ItemDate='6.3.2002';
  80. Views='432' ;
  81. Average='1.00' ;
  82. Grade='1' ;
  83. NumVotes='2' ;
  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. </SCRIPT>
  121. <SCRIPT Language=JavaScript Src="server/startfeatures.php@Rand=ddd "> </SCRIPT><SCRIPT Language=JavaScript Src="server/features.php"> </SCRIPT><!-- Rozdeleni na sloupce -->
  122.  
  123. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%">
  124. <tr>
  125.  
  126. <!-- Levy sloupec -->
  127.  
  128.  
  129.  
  130. <td  width="161" align="center" valign="top">
  131.  
  132. <img src=space.gif height=1 width=161>
  133. <SCRIPT SRC=server/left_js.php@version=1621></SCRIPT></td>
  134.  
  135. <!-- /Levy sloupec -->
  136.  
  137. <!-- Mezera 1-->
  138. <td width=13 bgcolor="#006792" ><img src="images/spacer.gif" width="13" height="1" border="0" alt=""></td>
  139. <!-- /Mezera 1-->
  140.  
  141. <!-- Mezera 2 -->
  142. <td width=1 bgcolor=#1063A5><img src="images/spacer.gif" width="1" height="1" border="0" alt=""></td>
  143. <!-- /Mezera 2-->
  144.  
  145. <!-- Mezera 3 -->
  146. <td width=10><img src="images/spacer.gif" width="10" height="1" border="0" alt=""></td>
  147. <!-- /Mezera 3-->
  148.  
  149.  
  150. <!-- Prostredni sloupec -->
  151. <td align="center" valign="top">
  152.  
  153. <!-- Hlavicka -->
  154. <!-- Horni lista s reklamou -->
  155.  
  156. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%" class="hrlista">
  157. <tr>
  158.  
  159. <!-- Logo-->
  160. <td VAlign=Top>
  161. <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>
  162. </td>
  163. <!-- /Logo -->
  164.  
  165. <td align=center>
  166. </td></tr></table>
  167. <!-- /Horni lista s reklamou-->
  168. <!-- /Hlavicka -->
  169.  
  170. <TABLE Width=100% Border=0><TD><SCRIPT>
  171. </SCRIPT><SCRIPT>
  172. ArticleHead('Zßkladnφ obrana proti p°evzetφ domΘny na stran∞ klienta', 'Michal Till', 'Michal.Till_40Seznam.cz', '6.3.2002', '00:15:03', 'Nßvod');
  173. Intro('Mo₧nost p°evzetφ domΘny pomocφ DHTML/JavaScriptu spolu se vÜemi bezpeΦnostnφmi mechanismy je jeden z nejΦast∞jÜφch neduh∙ webov²ch aplikacφ. Dnes bych rßd poskytnul Φtenß°∙m knihovnu (PHP) kterß tento problΘm komplexn∞ °eÜφ.');
  174. ArticleBanner_smallres('margin-bottom:10px;margin-top:-3px;');
  175. </SCRIPT>
  176. <DIV Class=Article><SCRIPT>
  177. AuthorData();
  178. if (Type != 'Pure') if ((ArticleType!=19) && (ArticleType!=20)) ShowSections();
  179. ArticleBanner_bigres('margin-top:12px;margin-bottom:-3px;');
  180. </SCRIPT><FONT Size=2><DIV Align=Justify Class=Paragraph>
  181.     ProblΘm cross-frame scriptingu byl na tomto serveru diskutovßn ji₧ mnohokrßt. Pravd∞podobn∞ nejlΘpe danΘ tΘma nov²m Φtenß°∙m osv∞tlφ rozsßhl² Φlßnek <a href=articles.php@ID=122>PφÜeme bezpeΦnou webovou aplikaci</a>.
  182. Velmi zjednoduÜen∞ jde o problΘm vypisovßnφ cizφho k≤du strßnkou v naÜφ domΘn∞. Takov²to k≤d pak mß p°φstup ke vÜem objekt∙m (cookies, ostatnφ framy) jako p∙vodnφ strßnky. InternetovΘ prohlφ₧eΦe, jako nap°φklad Internet Explorer, pou₧φvajφ p°itom k zabezpeΦenφ koncepci "stejnΘ adresy serveru". Strßnky z jednΘ adresy majφ stejnß bezpeΦnostnφ oprßvn∞nφ, vlo₧enφm k≤du do jednΘ strßnky tedy dojde k "uko°ist∞nφ" celΘ pou₧φvanΘ domΘny. 
  183. </DIV></FONT></b></i>
  184. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  185.     N∞kterΘ server-side skripty (resp. jejich interpreti) umo₧≥ujφ implicitn∞ nastavit kontrolu vstupnφch prom∞nn²ch a nahrazenφ n∞kter²ch citliv²ch znak∙. Vlastnφ °eÜenφ mß proti tomuto ale n∞kolik p°ednostφ, p°edevÜφm jde o maximßlnφ kontrolu nad pou₧it²mi mechanizmy, kdy m∙₧eme zabrßnit vstupu nejen jednotliv²ch znak∙, ale i cel²ch slov. N∞kdy je nutnΘ zabrßnit vlo₧enφ nesprßvnΘho SQL p°φkazu (p°ed citlivΘ znaky dßme zp∞tnΘ lomφtko), n∞kdy pot°ebujeme spφÜe zabrßnit v²pisu v∞tÜφtek a menÜφtek (znaky < a > zam∞nφme za &l<b></b>t; a &g<b></b>t; v tomto po°adφ), n∞kdy je nutnΘ provΘst obojφ. Lehkou modifikacφ tohoto skriptu m∙₧eme taktΘ₧ kontrolovat nap°. sprßvnost http Φi e-mailovΘ adresy, po zjiÜt∞nφ chyby m∙₧eme ihned p°esm∞rovat prohlφ₧eΦ na strßnku s chybovou hlßÜkou Φi Üpatnou hodnotu zapsat do logovacφho souboru. 
  186. </DIV></FONT></b></i>
  187. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  188.     Äe nenφ velmi praktickΘ v ka₧dΘm skriptu ruΦn∞ oÜet°ovat hodnotu ka₧dΘ prom∞nnΘ, je jasnΘ. Vrhn∞me se tedy do programovßnφ knihovny, kterß tento problΘm °eÜφ komplexn∞. 
  189. </DIV></FONT></b></i>
  190. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  191.     <PRE><SPAN Class=CODE>function Change(&$str, $From, $To, $End=""){
  192.  global $Changed;
  193.  $Changed=0;
  194.  $Str=" ".$str;
  195.  $UpStr=StrToUpper($Str);
  196.  $UpFrom=StrToUpper($From);
  197.  $UpTo=StrToUpper($To);
  198.  $LenFrom=StrLen($From);
  199.  while ($i=StrPos($UpStr,$UpFrom)) {
  200.   $UpStr=SubStr($UpStr,0,$i).$UpTo.SubStr($UpStr, $i+$LenFrom, 65530);
  201.   $Str = SubStr($Str, 0, $i).$To.SubStr($Str, $i+$LenFrom, 65530);
  202.   $Changed++;
  203.  }
  204.  if ($Changed==0) $End="";
  205.  $str=SubStr($Str, 1, 65530).$End;
  206.  return $str;
  207. }
  208. </DIV></FONT></b></i>
  209. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  210.     </SPAN></PRE>
  211. </DIV></FONT></b></i>
  212. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  213.     P°edn∞ je nutnΘ ud∞lat vlastφ nahrazovacφ funkci. Ta zde uvedenß nenφ v mnoha ohledech ideßlnφ (nap°. ne°eÜφ problΘm zßm∞ny, kde novß hodnota obsahuje tu starou), nicmΘn∞ pro tyto ·Φely je krßtkß a efektivnφ. Pomocφ tΘ budeme nahrazovat jednotlivΘ nebezpeΦnΘ znaky a °et∞zce.
  214. </DIV></FONT></b></i>
  215. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  216.     <PRE><SPAN Class=CODE>function SafeVal($VarName) {
  217.  global $$VarName;
  218.  $SaveVal=$$VarName;
  219.  if ((Is_Array($$VarName)==false) && (true)) {
  220.   Change($$VarName,"<","&l<b></b>t;");
  221.   Change($$VarName,">","&g<b></b>t;");
  222.   Change($$VarName,"'",""");
  223.   Change($$VarName,"\"",""");
  224.  }
  225.  if ($$VarName!=$SaveVal) {
  226.   //  zde by bylo zmi≥ovanΘ p°esm∞rovßnφ 
  227.   //  nebo logovßnφ chyby
  228.  }
  229. }
  230. </DIV></FONT></b></i>
  231. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  232.     </SPAN></PRE>
  233. </DIV></FONT></b></i>
  234. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  235.     Funkce <SPAN Class=CODE>SafeVal</SPAN> Provede postupnΘ nahrazenφ vÜech znak∙ v jednΘ prom∞nnΘ. V p°φpad∞ nalezenΘho rozdφlu p∙vodnφ a novΘ hodnoty se m∙₧e n∞co provΘst. Funkce musφ oÜet°it, zda prom∞nnß nenφ typu pole, nebo¥ v tomto p°φpad∞ by bylo nutnΘ p°ekonvertovat jednotlivΘ polo₧ky zvlßÜ¥.
  236. </DIV></FONT></b></i>
  237. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  238.     <PRE><SPAN Class=CODE>function MakeSafe(&$VarArray){
  239.  $Polozka="";
  240.  $Hodnota="";
  241.  if(isset($VarArray)):
  242.   Reset($VarArray);
  243.   while(List($Polozka, $Hodnota) = each($VarArray)):
  244.    SafeVal($Polozka);
  245.   endwhile;
  246.  endif;
  247. }
  248. </DIV></FONT></b></i>
  249. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  250.     </SPAN></PRE>
  251. </DIV></FONT></b></i>
  252. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  253.     Nßsleduje pravd∞podobn∞ nejd∙le₧it∞jÜφ funkce. Mß v parametru pole, jeho₧ polo₧ky otestuje, pop°φpad∞ nahradφ. Je nutnΘ postupovat tak, aby se ji₧ nastavenΘ defaultnφ prom∞nnΘ typu $HTTP_USER_AGENT nep°epsaly, proto se nßzvy prom∞nn²ch berou z tohoto asocativnφho pole, ale kontrolujφ se ji₧ nastavenΘ hodnoty. V opaΦnΘm p°φpad∞ by mohl kdokoliv zmi≥ovanΘ prom∞nnΘ p°epsat.
  254. </DIV></FONT></b></i>
  255. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  256.     
  257. Nynφ p°ijde ji₧ jen volßnφ kontroly prom∞nn²ch p°edßvan²ch metodami POST, GET a COOKIES.
  258. </DIV></FONT></b></i>
  259. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  260.     <PRE><SPAN Class=CODE> MakeSafe($HTTP_POST_VARS);
  261.  MakeSafe($HTTP_GET_VARS);
  262.  MakeSafe($HTTP_COOKIE_VARS);
  263. </SPAN></PRE>    
  264. </DIV></FONT></b></i>
  265. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  266.     Na zßv∞r bych rßd podotkl, ₧e toto °eÜenφ je jen jedno z mnoha mo₧n²ch a mß svoje v²hody i nev²hody. N∞kdy je v²hodn∞jÜφ pou₧itφ mechanizm∙ intrerpreta skript∙, Φasto je ale nutnΘ si p°id∞lat vlastnφ oÜet°enφ nad rßmec toho zabudovanΘho.
  267. </DIV></FONT></b></i>
  268. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  269.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI><a href="../atiks.ks.cz/~tillda/ai/cfs.php_">Celß knihovna</a><br><a href="../atiks.ks.cz/~tillda/ai/cfs.php_"><SPAN Align=Left Style="overflow:hidden;font-size:90%;"Class=Code>http://atiks.ks.cz/~tillda/ai/cfs.php_
  270.  </SPAN></a><br></UL>
  271. </DIV></FONT></b></i>
  272. </DIV>
  273. <SCRIPT>
  274. TextEnd('')
  275. </SCRIPT><SCRIPT>
  276. o('<br>');
  277. hr('');
  278. 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>');
  279. </SCRIPT><OL Class=None Type=Disc><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=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=77><SPAN Class=SeeAlso>Dφra v MSIE umo₧≥uje Φφst cookies</SPAN></a><LI style='margin-left:20px;' class=LinkItem><a href=articles.php@ID=122><SPAN Class=SeeAlso>PφÜeme bezpeΦnou webovou aplikaci - dφl 1.</SPAN></a></OL><SCRIPT>
  280. nie('<br>');AdditionalTablesBegin();
  281.  
  282. CommentsBegin('Zßkladnφ obrana proti p°evzetφ domΘny na stran∞ klienta',0);
  283. NoComments()
  284. CommentsEnd();
  285. </SCRIPT><SCRIPT>
  286. ArticleEnd()
  287. </SCRIPT></TABLE>
  288. <!-- /Prostredni sloupec -->
  289.  
  290.  
  291. <!-- Mezera 3 -->
  292.  
  293. <td width=5><img src="images/spacer.gif" width="5" height="1" border="0" alt=""></td>
  294. <!-- /Mezera 3-->
  295.  
  296. <!-- Mezera 2 -->
  297. <td width=1 bgcolor=#1063A5><img src="images/spacer.gif" width="1" height="1" border="0" alt=""></td>
  298. <!-- /Mezera 2-->
  299.  
  300. <!-- Mezera 1-->
  301. <td width=13 bgcolor="#006792" ><img src="images/spacer.gif" width="13" height="1" border="0" alt=""></td>
  302. <!-- /Mezera 1-->
  303.  
  304. <!-- Pravy sloupec -->
  305. <td bgcolor=#006792 width="0" align="center" valign="top">
  306. <SCRIPT SRC=server/right_js.php@version=1621></SCRIPT><br>
  307. </td>
  308. <!-- /Pravy sloupec -->
  309.  
  310.  
  311. </tr>
  312.  
  313. <!-- Bilo -->
  314. <tr>
  315. <td bgcolor=#000000><img src=space.gif height=1 width=1></td>
  316. <td bgcolor=#000000></td>
  317. <td bgcolor=#000000></td>
  318. <td bgcolor=#FFFFFF></td>
  319. <td bgcolor=#FFFFFF></td>
  320. <td bgcolor=#FFFFFF></td>
  321. <td colspan=5 bgcolor=#000000></td>
  322. </tr>
  323. <tr  bgcolor=#FFFFFF>
  324. <td><img src=space.gif height=20 width=1></td>
  325. <td></td>
  326. <td></td>
  327. <td></td>
  328. <td></td>
  329. <td></td>
  330. <td colspan=5></td>
  331. </tr>
  332. <!-- /Bilo-->
  333.  
  334.  
  335.  
  336. </table>
  337. <!-- /Rozdeleni na sloupce -->
  338.  
  339. <SCRIPT>
  340.     Exec(ToExecute);
  341.     ToExecute="";
  342. </SCRIPT>
  343.  
  344. <!-- Dolni lista -->
  345.  
  346.  
  347. <!-- Paticka -->
  348. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%" bgcolor=#ffffff>
  349. <TR><td colspan=5 align="center" bgcolor=#000000><img src=space.gif height=1 width=1></td></TR>
  350. <TR bgcolor=#f0f0f0>
  351. <td align="center">
  352. <IMG Src=images/logo2.gif hspace=10 vspace=5>
  353. </td>
  354. <td>
  355. <DIV Style="margin-top:4px;margin-bottom:4px;" Class=Copyright><FONT Face=Arial Size=1>
  356.  
  357. <b><u>Krypta.cz</u></b> -  Magazφn o informaΦnφ bezpeΦnosti.<br>
  358. 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>
  359. 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>
  360. </td>
  361. <td>
  362. <IMG Src=geronimo.gif hspace=10 vspace=5>
  363. </td>
  364. <td>
  365. <DIV Style="margin-top:4px;margin-bottom:4px;" Class=Copyright><FONT Face=Arial Size=1>
  366. RedakΦnφ systΘm Geronimo<br>
  367. Copyright (C) 2001-2002 <a href=mailto:michal.till@krypta.cz>Michal Till</a>
  368. </FONT></DIV>
  369. </td>
  370. </td></tr></table>
  371. <!-- Paticka -->
  372.  
  373. <!-- /Dolni lista -->
  374.  
  375. </body>
  376. </html>