gerzson         Mon Feb  4 06:52:41 2002 EDT

  Modified files:              
    /phpdoc/hu/chapters security.xml 
  Log:
  Database security section translated
  
Index: phpdoc/hu/chapters/security.xml
diff -u phpdoc/hu/chapters/security.xml:1.20 phpdoc/hu/chapters/security.xml:1.21
--- phpdoc/hu/chapters/security.xml:1.20        Tue Jan 29 13:03:06 2002
+++ phpdoc/hu/chapters/security.xml     Mon Feb  4 06:52:41 2002
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-2"?>
-<!-- EN-Revision: 1.39 Maintainer: gerzson Status: ready -->
+<!-- EN-Revision: 1.43 Maintainer: gerzson Status: ready -->
 <!-- CREDITS: goba -->
 
  <chapter id="security">
@@ -495,6 +495,447 @@
     olyan rendszert k�sz�teni, ahol mindent megtiltasz azon k�v�l,
     amit kifejezetten megengedsz.
    </para>
+  </sect1>
+
+  <sect1 id="security.database">
+   <title>Adatb�zis biztons�g</title>
+
+   <simpara>
+    Mostan�ban, b�rmely dinamikus tartalmat szolg�ltat� web alap� alkalmaz�s 
+    sarokk�v�nek sz�m�tanak az adatb�zisok. Mivel nagyon k�nyes, titkos adatok
+    t�rol�s�ra szolg�lnak ezek az adatb�zisok, er�sen megfontoland�, hogyan 
+    v�dj�k meg az ezeket.
+   </simpara>
+   <simpara>
+    Inform�ci�k t�rol�s�hoz vagy visszakeres�s�hez csatlakozni kell az 
+    adatb�zishoz, egy �rv�nyes lek�rdez�st kell k�ldeni, az eredm�nyt ki kell
+    olvasni, �s le kell z�rni a kapcsolatot.
+    Manaps�g ebben a p�rbesz�dben a Structured Query Language (SQL) a 
+    leggyakrabban haszn�lt lek�rdez�nyelv. Figyeld meg, mik�nt lehet <link
+    linkend="security.database.sql-injection">SQL lek�rdez�seket megbabr�lni</link>!
+   </simpara>
+   <simpara>
+    Mint l�that�, a PHP egymag�ban mag�t�l nem k�pes megv�deni az adatb�zist.
+    A k�vetkez� bekezd�sek �lja, hogy betekint�st adjanak az alapokba, hogyan kell
+    adatb�zisokat el�rni �s m�dos�tani egy PHP programon bel�l.
+   </simpara>
+   <simpara>
+    Tartsd �szben a k�vetkez� egyszer� szab�lyt: v�dekezz tagoltan. Min�l t�bb
+    helyen min�l t�bbet teszel a biztons�g n�vel�s��rt, ann�l kisebb a val�sz�n�s�ge,
+    hogy a t�mad�k sikerrel j�rjanak, �s kiteregess�k titkos adataidat, vagy 
+    vissza�ljenek vel�k. A j� adatb�zis- �s alkalmaz�stervez�s mindig a legnagyobb
+    f�lelmek figyelembev�tel�r�l ismerszik meg.
+   </simpara>
+
+   <sect2 id="security.database.design">
+    <title>Adatb�zis-tervez�s</title>
+     <simpara>
+      Az els� l�p�s mindig az adatb�zis l�trehoz�sa, hacsak nem egy k�v�l�ll��t
+      kell haszn�lni. Az adatb�zis l�trehoz�sakor az a tulajdonos�� lesz, aki
+      lefuttatta az utas�t�sokat. �ltal�ban csak a tulajdonos - esetleg az �n.
+      superuser - jogosult b�rmif�le az adatb�zis elemeit �rint� m�veletre.
+      Annak �rdek�ben, hogy m�s felhaszn�l�k is hozz�f�rjenek, jogokat kell
+      nekik biztos�tani.
+     </simpara>
+     <simpara>
+      Az alkalmaz�soknak soha nem szabad a tulajdonosak�nt vagy superuserk�nt
+      csatlakozni az adatb�zishoz, mert ezek b�rmilyen utas�t�st �s lek�rdez�st
+      tetsz�s szerint futtathatnak, pl. a szerkezeti m�dos�t�st (t�bl�k 
+      megsz�ntet�se) vagy teljes t�rl�s�k.
+     </simpara>
+     <simpara>
+      L�tre lehet hozni k�l�nb�z� szigor�an korl�tozott jogosult�sg� adatb�zis-
+      felhaszn�l�kat, melyek mindegyike az adatb�zis manipul�ci�nak egy-egy 
+      k�l�nb�z� n�z�pontj��rt felel�sek. Mindig csak a legsz�ks�gesebb jogokat
+      szabad enged�lyezni, �s el kell ker�lni, hogy ugyanazt a felhaszn�l�t
+      haszn�ljuk szerepeiben egym�st�l k�l�nb�z� esetekben. Ez azt jelenti, hogy
+      ha a behatol� meg is szerzi valamelyik ilyen min�s�t�st (hiteles�t�si 
+      inform�ci�t = felhaszn�l� + jelsz�), akkor is csak akkora v�ltoz�st tud 
+      okozni, mint az alkalmaz�s maga.
+     </simpara>
+     <simpara>
+      Nem kell minden feladatf�gg� szab�lyoz�st a webalkalmaz�sban (PHP 
+      szkriptben) k�dolni, ehelyett ink�bb haszn�ld az adatb�zis lehet�s�geit:
+      view-k (n�zetek), trigger-ek, rule-ok (szab�lyok). Ha a rendszer 
+      fejl�dik, �s m�s alkalmaz�sokat is csatlakoztatni kell az adatb�zishoz,
+      akkor mindegyikn�l �jra kellene programozni ezeket a szab�lyokat.
+      Mindezen fel�l a triggerek arra is j�k, hogy �tl�tsz� m�don �s 
+      automatikusan kezeljenek egyes mez�ket az adatb�zisban, amelyek gyakran
+      bepillant�st adnak abba, hogy mi is t�rt�nik/t�rt�nt egy tranzakci� k�zben,
+      vagy nagyon hasznosnak bizonyulnak hibakeres�s k�zben.
+     </simpara>
+   </sect2>
+
+   <sect2 id="security.database.connection">
+    <title>Kapcsol�d�s az adatb�zishoz</title>
+    <simpara>
+     Elk�pzelhet�, hogy SSL-n kereszt�l szeretn�l kapcsol�dni az adatb�zishoz,
+     hogy a kiszolg�l� �s �gyf�l k�zti teljes kommunik�ci� titkos�t�s�val
+     n�veld a v�delmet. Haszn�lhatsz ssh-t is erre a c�lra. Ak�rmelyik is
+     �ll, nagyon neh�z lesz a forgalom lehallgat�s�b�l inform�ci�kat kinyerni.
+    </simpara>
+    <!--simpara>
+     If your database server native SSL support, consider to use <link
+     linkend="ref.openssl">OpenSSL functions</link> in communication between
+     PHP and database via SSL.
+    </simpara-->
+   </sect2>
+
+   <sect2 id="security.database.storage">
+    <title>Titkos�tott t�rol�s</title>
+    <simpara>
+     SSL/SSH az �gyf�l �s kiszolg�l� k�zt mozg� adatokat v�di, �s nem v�di 
+     az adatb�zisban t�rolt megmarad� adatokat. Az SSL - kapcsolati protokoll.
+    </simpara>
+    <simpara>
+     Mihelyst a t�mad� k�zvetlen hozz�f�r�st szerzett az adatb�zishoz - 
+     megker�lve a webszervert -, a t�rolt adatok v�dtelenn� v�ltak, �s 
+     vissza�lhet vel�k, ha csak maga az adatb�zis nem v�di valahogy azokat.
+     Az adatok titkos�t�sa kell�k�pp csillap�tja ezt a vesz�lyt, de jelenleg
+     nagyon kev�s adatb�zis kezel� t�mogatja a titkos�t�st.
+    </simpara>
+    <simpara>
+     Ez a legk�nnyebben saj�t titkos�t� csomag �r�s�val oldhat� meg, amelyet
+     ut�na a PHP szkriptb�l el lehet �rni. Ebben az esetben a PHP a seg�ts�get
+     ny�jthat n�h�ny kiterjeszt�s�vel, mint p�ld�ul az <link
+     linkend="ref.mcrypt">Mcrypt</link> vagy az <link
+     linkend="ref.mhash">Mhash</link>, amelyek nagyon sokf�le titkos�t� 
+     algoritmust fednek le. Az szkript el�sz�r titkos�tja a t�rolni k�v�nt
+     adatot, majd a k�s�bbiekben visszakeres�skor visszafejti azokat. N�zd 
+     meg a hivatkozott fejezeteket tov�bbi p�ld�k�rt, hogyan kell a titkos�t�st
+     v�grehajtani.
+    </simpara>
+    <simpara>
+     Olyan teljsen rejtett adatok eset�n, amelyeknek ny�lt �br�zol�sukra nincs
+     sz�ks�g, mert nem lesznek ki�ratva, a hashel�st alkalmaz�sa is 
+     meggondoland�. A hashel�s j�l ismert p�ld�ja az, hogy a jelszavak helyett, 
+     azoknak csak MD5 hash �rt�k�t t�rolj�k az adatbzisban. L�sd m�g:
+     <function>crypt</function> �s <function>md5</function>!
+    </simpara>
+    <example>
+     <title>Hashelt jelsz� mez� haszn�lata</title>
+     <programlisting role="php">
+<![CDATA[
+// jelsz� hash �rt�k�nek t�rol�sa
+$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
+            addslashes($username), md5($password));
+$result = pg_exec($connection, $query);
+
+// lek�rdez�s, vajon a felhaszn�l� a helyes jelsz�t adta-e meg
+$query = sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';",
+            addslashes($username), md5($password));
+$result = pg_exec($connection, $query);
+
+if (pg_numrows($result) > 0) {
+    echo "�dv�z�llek, $username!";
+}
+else {
+    echo "$username hiteles�t�se nem siker�lt.";
+}
+]]>
+     </programlisting>
+    </example>
+   </sect2>
+
+   <sect2 id="security.database.sql-injection">
+    <title>SQL "beolt�s"</title>
+    <simpara>
+     Sok web fejleszt� nincs tudat�ban annak, hogy hogyan lehet megbabr�lni
+     az SQL utas�t�sokat, �s felt�telezik, hogy az SQL uats�t�s az egy megb�zhat�
+     parancs. Ez azt jelenti, hogy az SQL lek�rdez�sekkel ki lehet j�tszani a
+     hozz�f�r�s-szab�lyoz�sokat, enn�lfogva a szab�lyos enged�lyez�si folyamatokat
+     megker�lni, �s n�ha az SQL lek�rdez�sekkel a gazdag�pen oper�ci�s rendszer
+     szint� hozz�f�r�st lehet l�trehozni.
+    </simpara>
+    <simpara>
+     A "k�zvetlen SQL utas�t�s befecskendez�s" olyan m�dszer, amellyel a t�mad�
+     a r�gi SQL utas�t�sokat m�dos�tja vagy �jakat ad hozz�juk annak �rdek�benm,
+     hogy titkos inform�ci�khoz jusson hozz�, vagy fel�l�rja azokat, vagy vesz�lyes
+     rendszer szint� parancsokat futtasson az adatb�zis gazdag�p�n. Ez olyan 
+     alkalmaz�sok eset�n tehet� meg, amelyek a felhaszn�l�t�l sz�rmaz� adatokat 
+     �s statikus param�terekb�l �ll�tanak �ssze SQL lek�rdez�seket. Sajnos, a 
+     k�vetkez� p�ld�k mind megt�rt�nt eseteken alapulnak.
+    </simpara>
+    <para>
+     Az, hogy az adatb�zishoz superuserk�nt (olyan szem�lyk�nt, aki superusert
+     k�pes l�trehozni) csatlakozott az alkalmaz�s, �s a bevitt adatok ellen�rz�s�nek 
+     hi�nya odavezethet, hogy a t�mad� superuser hozz�f�r�st hozhat l�tre az 
+     adatb�zishoz.
+     <example>
+      <title>
+       A keres�si eredm�nyek lapokra t�rdel�se ... �s superuserek l�trehoz�sa
+       (PostgreSQL �s MySQL)
+      </title>
+      <programlisting role="php">
+<![CDATA[
+
+$offset = argv[0]; // Vigy�zz, nincs beviteli ellen�rz�s!
+$query  = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
+// PostgreSQL
+$result = pg_exec($conn, $query);
+// MySQL
+$result = mysql_query($query);
+]]>
+      </programlisting>
+     </example>
+      A szokv�nyos felhaszn�l� az 'el�z�', 'k�vetkez�' linkekre kattint, ahol
+      az <varname>$offset</varname> az URL-be van k�dolva. A szkript azt v�rja,
+      hogy <varname>$offset</varname> decim�lis sz�m. M�gis, valaki megpr�b�lhatja 
+      a k�vetkez� utas�t�s <function>urlencode</function> alakj�t f�zi hozz� 
+      az URL-hez (PostgreSQL):
+      <informalexample>
+       <programlisting>
+<![CDATA[
+0;
+insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
+    select 'crack', usesysid, 't','t','crack'
+    from pg_shadow where usename='postgres';
+--
+]]>
+       </programlisting>
+      </informalexample>
+      vagy MySQL eset�n
+      <informalexample>
+       <programlisting>
+<![CDATA[
+0;
+UPDATE user SET Password=PASSWORD('crack') WHERE user='root';
+FLUSH PRIVILEGES;
+]]>
+       </programlisting>
+      </informalexample>
+      Ha ez megt�rt�nne, akkor a szkript megaj�nd�kozn� a t�mad�t egy superuser
+      hozz�f�r�ssel. A <literal>0;</literal> arra val�, hogy �rv�nyes offset-et
+      biztos�tson az eredeti lek�rdez�snek.
+    </para>
+    <note>
+     <para>
+      �ltal�nos m�dszer, hogy a <literal>--</literal> jellel k�nyszer�tik ki, 
+      hogy az SQL elemz� figyelmen k�v�l hagyja a lek�rdez�sk�nt �tadott 
+      string fennmarad� r�sz�t, mivel ez a megjegyz�s szabv�nyos jel�l�se 
+      SQL-ben.
+     </para>
+    </note>
+    <para>
+     Egy lehets�ges m�dja a jelszavak megszerz�s�nek, hogy kij�tsz�k a keres�
+     oldalak tal�lati list�j�nak lek�rdez�seit. A t�mad�nak mind�ssze annyit
+     kell tennie, hogy v�gig pr�b�lja melyik elk�ld�tt SQL lek�rdez�sben haszn�lt
+     v�ltoz� nincs megfelel�en lekezelve. Ezeket �ltal�ban egy megel�z� �rlapon 
+     lehet be�ll�tani, hogy testre szabjuk a <literal>SELECT</literal> utas�t�s
+     <literal>WHERE, ORDER BY, LIMIT</literal> �s <literal>OFFSET</literal>
+     klauzul�it. Ha a haszn�lt adatb�ziskezel� t�mogatja a <literal>UNION</literal>
+     szerkezetet, akkor a t�mad� esetleg hozz�f�zhet egy teljesen �j lek�rdez�st
+     a m�r meglev�h�z, hogy kilist�zza  a valamilyen t�bl�ban t�rolt jelszavakat.
+     Titkos�tott t�rol�s er�sen aj�nlott!
+     <example>
+      <title>
+       �rucikkek list�z�sa ... �s n�h�ny jelsz�� (valamilyen adatb�zis kezel�)
+      </title>
+      <programlisting role="php">
+<![CDATA[
+$query  = "SELECT id, name, inserted, size FROM products
+                  WHERE size = '$size'
+                  ORDER BY $order LIMIT $limit, $offset;";
+$result = odbc_exec($conn, $query);
+]]>
+      </programlisting>
+     </example>
+     A lek�rdez�s statikus r�sze egy m�sik <literal>SELECT</literal> utas�t�ssal
+     kombin�lhat�, ami az �sszes jelsz�t kilist�zza:
+     <informalexample>
+      <programlisting>
+<![CDATA[
+'
+union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from 
+usertable;
+--
+]]>
+      </programlisting>
+     </informalexample>
+     Ha ez a lek�rdez�st (a <literal>'</literal> �s <literal>--</literal> megfelel�
+     haszn�lat�val) valamelyik <varname>$query</varname>-ben haszn�lt v�ltoz�hoz
+     siker�lne hozz�rendelni, akkor a sz�rny fel�bredne.
+    </para>
+    <para>
+     SQL UPDATEs ugyancsak ki vannak t�ve az adatb�zisok elleni t�mad�soknak.
+     Ezeket az utas�t�sokat is fenyegetik az el�z�ekben megismert megr�vid�t� �s
+     hozz�f�z� technik�k. �m emellett a t�mad� meghamis�thatja a 
+<literal>SET</literal> 
+     klauzul�t is. Ebben az esetben n�mi s�ma inform�ci�val rendelkeznie kell a 
+     t�mad�nak, hogy sikerrel j�rjon. Ezeket az inform�ci�kat az �rlapv�ltoz�k 
+     neveib�l szerezhetik meg, vagy egyszer�en pr�b�lgat�ssal. Az �ltal�nosan 
+     haszn�lt elnevez�sek a felhaszn�l�i n�vre �s jelsz�ra nem nagyon 
+     k�l�nb�znek egym�st�l.
+     <example>
+     <title>
+      Jelsz� �t�r�s�t�l ... �j jogok megszerz�s�ig (valamilyen adatb�zis kezel�)
+     </title>
+      <programlisting role="php">
+<![CDATA[
+$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
+]]>
+      </programlisting>
+     </example>
+     A rosszindulat� felhaszn�l� a <literal>' or uid like'%admin%'; --</literal>
+     �rt�ket adja �t a <varname>$uid</varname> v�ltoz�nak, �s ezzel 
+     megv�ltoztatja az adminisztr�tor jelszav�t, vagy egyszer�en a 
+     <varname>$pwd</varname>-nek a <literal>"hehehe', admin='yes', trusted=100 
+"</literal>
+     (lez�r� sz�k�zzel) �rt�ket adva  m�g t�bb jogot szerez mag�nak. Ezt az 
+     SQL parancsot ezek �gy ferd�tik el:
+     <informalexample>
+      <programlisting role="php">
+<![CDATA[
+// $uid == ' or uid like'%admin%'; --
+$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --";
+
+// $pwd == "hehehe', admin='yes', trusted=100 "
+$query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE ...;"
+]]>
+      </programlisting>
+     </informalexample>
+    </para>
+    <para>
+     Egy ijeszt� p�lda arr�l, hogyan lehet az adatb�zis gazdag�p�n oper�ci�s 
+     rendszerszint� parancsokat futtatni.
+     <example>
+     <title>Az adatb�zis-gazdag�p oper�ci�s rendszere elleni t�mad�s (MSSQL 
+Server)</title>
+      <programlisting role="php">
+<![CDATA[
+$query  = "SELECT * FROM products WHERE id LIKE '%$prod%'";
+$result = mssql_query($query);
+]]>
+      </programlisting>
+     </example>
+     Ha a t�mad� az <literal>a%' exec master..xp_cmdshell 'net user test testpass 
+/ADD' --</literal>
+     �rt�ket k�ldi el a <varname>$prod</varname> v�ltoz�nak, akkor a 
+     <varname>$query</varname> a k�vetkez�k�pp alakul:
+     <informalexample>
+      <programlisting role="php">
+<![CDATA[
+$query  = "SELECT * FROM products WHERE id LIKE '%a%' exec master..xp_cmdshell 'net 
+user test testpass /ADD'--";
+$result = mssql_query($query);
+]]>
+      </programlisting>
+     </informalexample>
+     MSSQL Server futtatja a k�tegbe fogott SQL utas�t�sokat, k�zt�k azt 
+     is, amelyik �j felhaszn�l�t vesz fel az adatb�zis kiszolg�l�g�pen. Ha
+     az alkalmaz�s <literal>sa</literal> jogosults�ggal fut �s az MSSQLSERVER
+     service megfelel� jogokkal fut, akkor a t�mad�nak most m�r hozz�f�r�se van
+     ehhez a g�phez.
+    </para>
+    <note>
+     <para>
+      A p�ld�k n�melyike bizonyos adatb�ziskezel�h�z k�t�dik. Ez nem azt jelenti,
+      hogy hasonl� t�mad�s elk�pzelhetetlen m�s term�kkek ellen. Az �ltalad 
+      haszn�lt adatb�zis-kezel� ugyanilyen s�r�l�keny lehet, ak�r m�s m�don.
+     </para>
+    </note>
+
+    <sect3 id="security.database.avoiding">
+     <title>Elh�r�t�si m�dszerek</title>
+     <simpara>
+      Ellenevet�sk�nt felmer�lhet, hogy p�ld�k t�bbs�g�ben a t�mad�nak 
+      rendelkeznie kell valamennyi el�zetes inform�ci�val az adatb�zis
+      fel�p�t�s�r�l. Ez igaz, de soha nem lehet tudni, hogy mikor, hol, hogyan
+      szerezhetik meg ezeket, �s ha ez megt�rt�nt, az adatb�zisod v�dtelenn�
+      v�lik. A behatol�k k�nnyen hozz�juthatnank a program egy darabj�hoz ny�lt 
+      forr�sk�d�, vagy olyan nyilv�nosan el�rhet� adatb�zis-kezel� programcsomag
+      haszn�latakor, amelyik egy f�rum vagy tartalomszolg�ltat� rendszer r�sze.
+      Ez k�l�n�sen vesz�lyes lehet, ha ezek kev�ss� �tgondoltak �s gyeng�n 
+      megtervezettek.
+     </simpara>
+     <simpara>
+      Ezek a t�mad�sok alapvet�en azoknak a programoknak a kihaszn�l�s�n alapulnak,
+      amelyek a v�delmet/biztons�got figyelmen k�v�l hagyva sz�lettek. Soha nem
+      lehet megb�zni semmilyen bej�v� adaton, f�leg ha az a kliens oldalr�l 
+      �rkezik, m�g akkor sem, ha az egy �ltalunk megadott s�ti (cookie), vagy
+      rejtett mez� (hidden input) �rt�ke esetleg egy leg�rd�l� lista eleme.
+      M�g egy olyan �rtatlan lek�rdez�s, mint ami az els� p�ld�ban l�that�,
+      katasztr�f�t okozhat.
+     </simpara>
+
+     <itemizedlist>
+      <listitem>
+       <simpara>
+        Soha ne csatlakozz az adatb�zishoz tulajdonosak�nt vagy superuser-k�nt.
+        Mindig kev�s jogosults�ggal rendelkez�, testreszabott felhaszn�l�kat
+        haszn�lj!
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        Ellen�rizd a bej�v� adat t�pus�t, hogy az a v�rtnak megfelel�-e!
+        PHP bevitel ellen�rz� f�ggv�nyek sz�les k�r�vel rendelkezik kezdve
+        a legegyszer�bbekt�l - pl.: <link 
+        linkend="ref.variables">V�ltoz�kkal kapcsolatos f�ggv�nyek</link> k�z�l
+        <function>is_numeric</function> vagy a <link 
+        linkend="ref.ctype">Character Type Functions</link> k�z�l a 
+        <function>ctype_digit</function> - a <link 
+        linkend="ref.pcre">Perl kompatibilis regul�ris kifejez�sek</link>
+        t�mogat�s�ig.
+        support.
+       </simpara>
+      </listitem>
+      <listitem>
+       <para>
+        Ha az alkalmaz�s sz�mot v�r, akkor megfontoland� az 
+        <function>is_numeric</function> f�ggv�nnyel ellen�rizni a t�pus�t, vagy 
+        csendben megv�ltoztatni a t�pus�t a <function>settype</function>
+        f�ggv�nnyel, vagy sz�m szerinti �br�zol�s�t haszn�lni az 
+        <function>sprintf</function> f�ggv�nnyel.
+        <example>
+         <title>
+          A lapoz�shoz haszn�lt lek�rdez�s �ssze�ll�t�s�nak biztons�gosabb m�dja
+         </title>
+         <programlisting role="php">
+<![CDATA[
+settype($order, 'integer');
+$query  = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
+
+// Figyelj a %d -re a form�z� sztringben, a %s haszn�lat �rtelmetlen lenne
+$query  = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;", 
+$offset);
+]]>
+         </programlisting>
+        </example>
+       </para>
+      </listitem>
+      <listitem>
+       <simpara>
+        Id�z�jelek k�z� kell tenni minden nem sz�m jelleg�, felhaszn�l�t�l
+        sz�rmaz� adatot, erre haszn�lhat� az <function>addslashes</function>
+        vagy az <function>addcslashes</function>. L�sd m�g 
+        <link linkend="security.database.storage">az els� p�ld�t</link>!
+        Ahogy a p�ld�k is mutatj�k, a statikus r�szbe �getett id�z�jelek
+        nem elegend�ek, �s k�nnyen kij�tszhat�k.
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        Semmilyen adatb�zisra jellemz� inform�ci�t - k�l�n�sen 
+        szerkezetit - nem szabad ki�rni, ha t�rik, ha szakad.
+        L�sd m�g: <link
+        linkend="security.errors">Hibajelz�s</link> �s <link
+        linkend="ref.errorfunc">Hibakezel� �s napl�z� f�ggv�nyek</link>!
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        T�rolt elj�rsokat �s el�re defini�lt kurzorokat is haszn�lhatsz, hogy
+        az adatb�zisel�r�st absztrah�ld annak �rdek�ben, hogy a felhaszn�l�k
+        ne k�zvetlen�l a t�bl�khoz vagy n�zetekhez f�rjenek hozz�. Ennek a
+        megold�s azonban egy�b hat�sai vannak.
+       </simpara>
+      </listitem>
+     </itemizedlist>
+
+     <simpara>
+      Ezeken k�v�l, hasznot hajthat a lek�rdez�sek napl�z�sa ak�r a szkripteken 
+      bel�l, ak�r ha az adatb�zis kezel� maga teszi ezt. Nyilv�nval�, hogy ez nem
+      tudja megakad�lyozni egyetlen �rtalmas pr�b�lkoz�st sem, de seg�ts�get
+      ny�jthat annak felder�t�s�ben, hogy melyik alkalmaz�s lett kij�tszva. A
+      napl�z�s �nmag�ban nem, csak a benne megjelen� inform�ci�kon kereszt�l 
+      v�lik hasznoss�: �ltal�ban a t�bb r�szlet, hasznosabb.
+     </simpara>
+    </sect3>
+   </sect2>
   </sect1>
 
   <sect1 id="security.errors">


Reply via email to