pgerzson Wed Dec 19 20:20:51 2001 EDT
Modified files:
/phpdoc/hu/chapters security.xml config.xml
Log:
catching up config and security chapters
Index: phpdoc/hu/chapters/security.xml
diff -u phpdoc/hu/chapters/security.xml:1.14 phpdoc/hu/chapters/security.xml:1.15
--- phpdoc/hu/chapters/security.xml:1.14 Wed Dec 12 15:50:54 2001
+++ phpdoc/hu/chapters/security.xml Wed Dec 19 20:20:50 2001
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-2"?>
-<!-- EN-Revision: 1.19 Maintainer: goba Status: ready -->
+<!-- EN-Revision: 1.38 Maintainer: pgerzson Status: ready -->
<chapter id="security">
<title>Biztons�g</title>
@@ -35,13 +35,63 @@
fejleszt�n m�lik.
</simpara>
<simpara>
- Ez a fejezet el�sz�r a k�l�nb�z� be�ll�t�si-lehet�s�g
- kombin�ci�kat t�rgyalja, �s azokat a helyzeteket, ahol
- ezek biztons�gosan haszn�lhat�ak. Ut�na n�h�ny k�dol�si
- probl�m�t mutat be, amik biztons�goss�g szempontj�b�l
- �rdekesek lehetnek. V�g�l n�h�ny �ltal�nos tan�cs k�vetkezik.
+ Ez a fejezet n�h�ny biztons�gi tan�csot t�rgyal, a k�l�nb�z�
+ be�ll�t�si lehet�s�geket �s azokat a helyzeteket t�rja fel, amelyekben
+ ezeket biztons�ggal lehet haszn�lni. Ut�na n�h�ny k�dol�si szempontot
+ vesz �t a k�l�nb�z� szint� biztons�goss�g szempontj�b�l
</simpara>
+ <sect1 id="security.general">
+ <title>�ltal�nos szempontok</title>
+ <simpara>
+ A teljesen biztons�gos rendszer kialak�t�sa tulajdonk�ppen lehetlens�g,
+ ez�rt a biztons�gi ter�leten alkalmazott megk�zel�t�s a kock�zat �s a
+ haszn�lhat�s�g k�zti egyens�ly megteremt�se. Ha minden a felhaszn�l�
+ �ltal k�ld�tt adat k�t biometrikus �rv�nyes�t�st (pl. retina- �s
+ ujjlenyomatvizsg�latot) ig�nyel, akkor igen magas szint� a rendszer
+ "felel�ss�gre vonhat�s�ga" (accountability). Ez azonban azt jelenten�, hogy
+ f�l�r�ba telne kit�lteni egy meglehet�sen �sszetett �rlapot, ami arra
+ �szt�k�ln� a felhaszn�l�kat, hogy valahogy megker�lj�k ezt a v�delmet.
+ </simpara>
+ <simpara>
+ A legjobb v�delem gyakran a kev�sb� alkalmatlankod� �s nem felt�n�,
+ hogy megfeleljen a k�vetelm�nyeknek an�lk�l, hogy megakad�lyozn� a
+ felhaszn�l�kat a munk�juk elv�gz�s�ben vagy t�lterheln� a program �r�it
+ annak t�lzott m�rv� bonyolults�ga. Val�j�ban n�h�ny biztons�gi t�mad�s
+ puszt�n a kiakn�z�sa az olyasfajta t�ls�gosan is ki�p�tett v�delemnek, amely
+ hajlamos elerod�l�dni az id�vel.
+ </simpara>
+ <simpara>
+ Egy mondatot �rdemes megjegyezni: A rendszer csakis annyira j�l v�dett,
+ amennyire a leggyeng�bb l�ncszeme. Ha minden tranzakci�t hevesen
+ napl�z id�, hely �s tranzakci�t�pus alapj�n is, de a felhaszn�l� csak
+ egy egyszer� s�ti (cookie) alapj�n azonos�tja, akkor a felhaszn�l�k
+ tranzakci�napl�n bel�li el�fordul�s�nak �rv�nyess�ge, megb�zhat�s�ga
+ igen gyenge.
+ </simpara>
+ <simpara>
+ Amikor tesztelsz, vedd figyelembe, hogy nem vagy k�pes minden lehet�s�get
+ kipr�b�lni m�r a legegyszer�bb oldalak eset�n sem. Az �ltalad v�rt adatok
+ teljesen k�l�nb�z�ek �s �sszef�gg�stelenek azokt�l, amelyeket egy zs�mbel�d�
+ alkalmazott k�pes elk�ldeni, vagy amelyeket egy szoftverkal�z (cracker) t�bb
+ havi munk�j�val �ll�t �ssze, vagy ami nem m�s, mint egy h�zimacska
+ billenyty�zeten hagyott "l�bnyoma". Ez�rt a legjobb, ha a programot logikai
+ n�z�pontb�l k�zel�ted meg, hogy siker�lj�n �szrevenni, hol j�hetnek el� nem
+ v�rt adatok �s azok a tov�bbiakban hogyan m�dosulhatnak, t�nhetnek el vagy
+ er�s�dhetnek fel a hat�suk.
+ </simpara>
+ <simpara>
+ Az Internet tele van olyan emberekkel, akik azzal akarnak maguknak nevet
+ szerezni, hogy felt�rik az oldalaidat, t�nkreteszik a programjaidat, nem
+ hely�nval� tartalommal t�ltik fel azokat, mellesleg egy - k�t izgalmas(?)
+ napot szerezve ezzel Neked. Nem sz�m�t, hogy kis vagy nagy webhelyr�l van sz�,
+ el�g indok a t�mad�sra, hogy r� vagy kapcsolva a h�l�ra, �s van egy szervered,
+ amelyhez csatlakozni lehet. Sok k�dt�r� program nem foglalkozik a m�retekkel,
+ egyszer�en csak nagy mennyis�g� IP blokkokra vad�szik �ldozatokat keresve ezzel
+ mag�nak. Pr�b�lj meg nem egy lenni k�z�l�k!
+ </simpara>
+ </sect1>
+
<sect1 id="security.cgi-bin">
<title>CGI futtathat� �llom�nyk�nt telep�tett PHP</title>
@@ -284,14 +334,15 @@
<simpara>
�ltal�ban, ha a biztons�got akkora szintre tudjuk emelni, hogy
a PHP user (ebben az esetben az Apache user) igen kis kock�zattal
- fut, nem k�pes p�ld�ul v�rus f�jlok �r�s�ra a user k�nyvt�rakba.
- Letilthatjuk sz�m�ra egy pr�v�t adatb�zis el�r�s�t vagy
- megv�ltoztat�s�t. Tipikusan ebben a helyzetben m�r azokat
- a f�jlokat sem tudja �rni, amit kellene, vagy nem tud
- v�grehajtani adatb�zis lek�r�seket.
+ fut, nem k�pes p�ld�ul ak�rmilyen f�jlok �r�s�ra a user k�nyvt�rakba.
+ Letilthatjuk sz�m�ra egy adatb�zis el�r�s�t vagy megv�ltoztat�s�t.
+ Tipikusan ebben a helyzetben m�r azokat a f�jlokat sem tudja �rni,
+ amit kellene, vagy egyar�nt nem tud v�grehajtani j� �s rosszindulat�
+ adatb�zis tranzakci�kat.
</simpara>
<simpara>
- Egy gyakori hiba ezen a ponton, hogy az Apache-nak root jogokat adnak.
+ Egy gyakori hiba ezen a ponton, hogy az Apache-nak root jogokat adnak vagy
+ valamilyen egy�b m�don b�v�tik az Apache jogait / lehet�s�geit.
</simpara>
<simpara>
Az Apache user jogainak root szintre b�v�t�se k�l�n�sen
@@ -299,6 +350,12 @@
chroot vagy m�s hasonl� eszk�z�k haszn�lata elker�lend�,
ha nem vagy biztons�gi szakember.
</simpara>
+ <simpara>
+ Van n�h�ny egyszer�bb megold�s is. Az <link
+linkend="ini.open-basedir">open_basedir</link>
+ haszn�lat�val szab�lyozni lehet, hogy mely k�nyvt�rakat olvashatja a PHP.
+ Ki lehet jel�lni �n. csak apache-s ter�leteket, hogy minden web alap� m�veletet
+ ide ezekre a nem rendszer- �s nem felhaszn�l�i f�jlokra korl�tozz.
+ </simpara>
</sect1>
<sect1 id="security.filesystem">
@@ -334,7 +391,7 @@
<![CDATA[
<?php
// egy f�jl t�rl�se a user k�nyvt�r�b�l
-$usernev = $user_altal_beadott_nev;
+$usernev = $HTTP_POST_VARS["user_altal_beadott_nev"];
$konyvtar = "/home/$usernev";
$torlendo_file = "$userfile";
unlink ($konyvtar/$torlendo_file);
@@ -388,8 +445,8 @@
<?php
// egy f�jl t�rl�se ak�rhonnan, ahol a PHP usernek
// joga van erre.
-$usernev = $HTTP_REMOTE_USER; // ez a user azonos�tott neve
- // (ha volt el�tte azonos�t�s)
+$usernev = $HTTP_SERVER_VARS['REMOTE_USER']; // ez a user azonos�tott neve
+ // (ha volt el�tte azonos�t�s)
$konyvtar = "/home/$usernev";
@@ -397,7 +454,7 @@
unlink ($konyvtar/$torlendo_file);
$fp = fopen("/home/logging/filedelete.log","+a"); // t�rl�s napl�z�sa
-$logstring = "$HTTP_REMOTE_USER $konyvtar $torlendo_file";
+$logstring = "$usernev $konyvtar $torlendo_file";
fputs ($fp, $logstring);
fclose($fp);
@@ -405,24 +462,31 @@
?>
]]>
</programlisting>
- </example>
- Esetleg egy jobban testreszabott ellen�rz�st is k�sz�thetsz:
+ </example>
+ Mindamellett, ez sem mentes a hi�nyoss�gokt�l. Ha az �ltalad haszn�lt
+ hiteles�t�si m�dszer (authentication) megengedi a felhaszn�l�knak, hogy
+ saj�t login napl�t vezessenek, akkor ha egyik�k a "../etc/" -t v�lasztja
+ a rendszer v�dtelenn� v�lik. Ebb�l kiindulva, egy jobban testreszabott
+ ellen�rz�st is k�sz�thetsz:
<example>
<title>Biztons�gosabb f�jln�v-ellen�rz�s</title>
<programlisting role="php">
-<![CDATA[
-<?php
-$username = getenv("REMOTE_USER");
-$homedir = "/home/$username";
-
-if (!ereg('^[^./][^/]*$', $userfile))
- die('rossz f�jln�v'); //nem hajtjuk v�gre a t�rl�st
-
-//etc...
-?>
-]]>
+ <![CDATA[
+<?php
+$usernev = $HTTP_SERVER_VARS['REMOTE_USER']; // hitelesites
+$homedir = "/home/$usernev"; $homedir = "/home/$usernev";
+
+if (!ereg('^[^./][^/]*$', $userfile))
+ die('rossz f�jln�v'); // v�ge, nincs feldolgoz�s
+
+if (!ereg('^[^./][^/]*$', $usernev))
+ die('rossz usernev'); // v�ge, nincs feldolgoz�s
+//stb...
+?>
</programlisting>
- </example>
+ </example>
+ </para>
+ <para>
A haszn�lt oper�ci�s rendszert�l f�gg�en sz�les a v�deni k�v�nt
f�jlok sk�l�ja, bele�rtve az eszk�z hivatkoz�sokat (/dev/ vagy COM1),
konfigur�ci�s f�jlokat (/etc/ �s az .ini f�jlok), j�l ismert
@@ -434,15 +498,32 @@
<sect1 id="security.errors">
<title>Hibajelz�s</title>
- <simpara>
+ <para>
+ A PHP biztons�gi k�rd�sek fel�l a hibajelz�seknek k�t oldaluk van.
+ Az egyik hasznos a v�delem n�vel�se szempontj�b�l, a m�sik k�ros r�.
+ </para>
+ <para>
Egy szok�sos t�mad�si technika min�l t�bb inform�ci� begy�jt�se
a rendszerr�l. Ezt �gy pr�b�lj�k megoldani, hogy helytelen
adatokat k�ldenek be, �s r�gz�tik a hiba�zenetek t�pusait
�s k�rnyezet�ket. Ez lehet�s�get ad a crackernek, hogy
el�g inform�ci�t gy�jts�n a rendszerr�l, �s meghat�rozza
- a lehets�ges gyenge pontokat.
- </simpara>
- <simpara>
+ a lehets�ges gyenge pontokat. Ha p�ld�ul a t�mad� �sszeszedegett
+ el�g inform�ci�t az el�z� �rlap kit�lt�sek alapj�n, akkor
+ megpr�b�lhatja a v�ltoz�kat fel�l�rni vagy megv�ltoztatni �ket:
+ <example>
+ <title>V�ltoz�k elleni t�mad�s egy HTML oldallal</title>
+ <programlisting role="php">
+<![CDATA[
+<form method="post" action="tamadas_celpontja?usernev=rosszize&jelszo=rosszize">
+<input type="hidden" name="usernev" value="rosszize">
+<input type="hidden" name="jelszo" value="rosszize">
+</form>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
A PHP �ltal visszaadott hiba�zenetek �ltal�ban hasznosak
a hib�kat keres� fejleszt� sz�m�ra, megjel�lve a f�jlt, �s
a f�ggv�nyt, ami hib�s, megadva a megfelel� programsor sz�m�t.
@@ -452,16 +533,35 @@
<function>highlight_file</function> f�ggv�nyeket a
fejleszt�s sor�n hibakeres�sre is haszn�lja, de egy �lesben
l�v� webhelyen ez rejtett v�ltoz�kat, ellen�rizetlen k�dokat,
- �s m�s vesz�lyes inform�ci�kat fedhet fel.
- </simpara>
- <simpara>
+ �s m�s vesz�lyes inform�ci�kat fedhet fel. Kifejezetten vesz�lyes
+ ismert forr�s� be�p�tett hibakezel�vel rendelkez� k�dok haszn�lata.
+ Ha a t�mad� r�j�n, milyen �ltal�nos technik�t haszn�lsz, akkor
+ megpr�b�lhatja a nyers er�re alapozva felt�rni az oldalt a
+ k�l�nb�z� megszokott hibakeres� (debugging) v�ltoz�k elk�ld�s�vel:
+ <example>
+ <title>Szokv�nyos hibakeres� v�ltoz�k kihaszn�l�sa</title>
+ <programlisting role="php">
+<![CDATA[
+<form method="post" action="tamadas_celpontja?errors=Y&showerrors=1"&debug=1">
+<input type="hidden" name="errors" value="Y">
+<input type="hidden" name="showerrors" value="1">
+<input type="hidden" name="debug" value="1">
+</form>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ A hibakezel�s m�dj�t�l f�ggetlen�l, az a lehet�s�g, hogy egy rendszerben
+ hib�k ut�n kuthatnak, odavezet, hogy a t�mad�k is t�bb inform�ci�hoz
+ jutnak.
Az �ltal�nos hiba�zenetek nagyr�sz�b�l p�ld�ul beazonos�that�, hogy
a rendszer PHP-t haszn�l. Ha a t�mad� egy .html oldalt l�tott,
�s ismert hib�kat kihaszn�lva meg akarta tudni, hogy
milyen alkalmaz�st haszn�l a rendszer, hib�s adatokat bek�ldve
azonos�thatja, hogy az oldalt egy PHP program �ll�totta el�.
- </simpara>
- <simpara>
+ </para>
+ <para>
Egy f�ggv�nyhiba el�rulhatja, hogy a rendszer milyen
adatb�zismotort haszn�l, vagy hogy milyen programoz�i
st�lussal k�sz�lt az adott weblap. Ez m�lyebb kutat�sokra
@@ -471,15 +571,15 @@
�llap�tani, hogy milyen sorrendben v�gzed az azonos�t�sokat
(a hib�k sorsz�maib�l). Ezzel a gyenge pontok is k�nnyen
megtal�lhat�ak egy szkriptben.
- </simpara>
- <simpara>
+ </para>
+ <para>
A f�jlrendszer vagy �ltal�nos PHP hib�k jelezhetik, hogy
milyen jogokkal rendelkezik a webszerver, �s megmutathatj�k
a f�jlok elrendez�s�t �s strukt�r�j�t. A fejleszt� �ltal
�rt hib�s k�d s�lyosb�thatja a helyzetet, r�gebben
'rejtett' inform�ci�k k�nny� kider�t�s�t t�ve lehet�v�.
- </simpara>
- <simpara>
+ </para>
+ <para>
H�rom megold�si lehet�s�g ad�dik erre a probl�m�ra. Az els�,
hogy vizsg�ld meg alaposan a f�ggv�nyeidet, �s pr�b�ld
meg elker�lni a hib�kat. A m�sodik, hogy kapcsold ki a
@@ -488,9 +588,111 @@
hibakezel�ket defini�lj. A m�r megtett biztons�gi
int�zked�sekt�l f�gg�en esetleg mindh�rom fenti m�dszer
k�z�l v�laszthatsz.
- </simpara>
+ </para>
+ <para>
+ Hogy megel�zd a bajt, haszn�t veheted a PHP saj�t
+ <function>error_reporting</function> f�ggv�ny�nek, ami seg�t
+ biztons�gosabb� tenni a programodat �s megtal�lni a v�ltoz�k
+ v�szelyeket rejt� haszn�lati form�it. A bevezet�s el�tti tesztel�s
+ sor�n E_ALL be�lll�t�ssal gyorsan meg lehet tal�lni azokat a pontokat,
+ ahol a v�ltoz�id k�nnyen �s/vagy rosszindulat�an m�dos�that�k. Ha
+ m�r k�sz vagy a program bevezet�s�re, akkor a E_NONE-t haszn�lva
+ teljesen el tudod szigetelni a k�dodat a tov�bbi vizslat�sokt�l.
+ <example>
+ <title>Vesz�lyes v�ltoz�k felder�t�se az E_ALL seg�ts�g�vel</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+if ($usernev) { // nincs inicializ�lva vagy ellen�rizve haszn�lat el�tt
+ $jo_belepes = 1;
+}
+if ($jo_belepes == 1) { // ha az el�z� felt�tel hamis, nincs inicializ�lva vagy
+ellen�rizve haszn�lat el�tt
+ fpassthru ("/nagyon/kenyes/adatok/index.html");
+}
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
</sect1>
-
+
+ <sect1 id="security.registerglobals">
+ <title>Glob�lisan is el�rhet� v�ltoz�k (Register Globals) haszn�lata</title>
+ <para>
+ A biztons�g n�vel�s�re haszn�lhat� a PHP egyik lehet�s�ge: a
+ <link linkend="ini.register-globals">register_globals</link> = off be�ll�t�s
+ haszn�lata. Ennek a kikapcsol�sa azt jelenti, hogy nem "szennyezi" a PHP
+ k�dot b�rmely felhaszn�l�t�l j�v� v�ltoz�, �s �gy cs�kken a potenci�lis
+ t�mad� �ltal befoly�solhat� v�ltoz�k k�re. M�g t�bb id�t kell azzal t�lteni�k,
+ hogy kital�lj�k a v�ltoz�k felt�lt�s�nek m�dj�t, �s a bels� v�ltoz�id
+ hat�konyan elk�l�n�lnek a felhaszn�l� �ltal elk�ld�tt adatokt�l.
+ </para>
+ <para>
+ While it does slightly increase the amount of effort required
+ to work with PHP, it has been argued that the benefits far
+ outweigh the effort.
+ <example>
+ <title>register_globals=off n�lk�l</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+if ($usernev) { // felhaszn�lhat� �ltal hamis�that� get/post/cookies
+ $jo_belepes = 1;
+}
+
+if ($jo_belepes == 1) { // felhaszn�lhat� �ltal hamis�that� get/post/cookies
+ fpassthru ("/nagyon/kenyes/adatok/index.html");
+}
+?>
+]]>
+ </programlisting>
+ </example>
+ <example>
+ <title>register_globals = off haszn�lat�val</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+if($HTTP_COOKIE_VARS['usernev']){
+ // csak s�tik�nt j�het, hamis�tva vagy �pp ellenkez�leg
+ $jo_belepes = 1;
+ fpassthru ("/nagyon/kenyes/adatok/index.html");
+}
+?>
+]]>
+ </programlisting>
+ </example>
+ Okosan haszn�lva, m�g azt k�pes lehet jelezni, ha hamis�t�st
+ k�s�reltek meg. Ha el�re tudod, hogy mely v�ltoz�knak honnan
+ kell �rkezni�k, megvizsg�lhatod, hogy vajon m�s m�don nem pr�b�lt�k-e
+ meg elk�ldeni ezt a v�ltoz�t. Ez nem garant�lja, hogy az adatok
+ nem hamis�that�k, azonban megk�veteli a t�mad�t�l, hogy az r�tal�ljon
+ a megfelel� hamis�t�si m�dszerre.
+ <example>
+ <title>Egyszer� v�ltoz�-�tv�tel felfed�se</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+if ($HTTP_COOKIE_VARS['usernev'] &&
+ !$HTTP_POST_VARS['usernev'] &&
+ !$HTTP_GET_VARS['usernev'] ) {
+ // egy�b usernev azonos�t�sok elv�gz�se ...
+ $jo_belepes = 1;
+ fpassthru ("/nagyon/kenyes/adatok/index.html");
+} else {
+ mail("[EMAIL PROTECTED]", "Lehets�ges bet�r�si k�s�rlet",
+$HTTP_SERVER_VARS['REMOTE_ADDR']);
+ echo "V�delmi szab�lyok megszeg�se, adminisztr�tor �rtes�tve.";
+ exit;
+}
+?>
+]]>
+ </programlisting>
+ </example>
+ Term�szetesen register_globals egyszer� kikapcsol�sa nem jelenti azt, hogy
+ a k�d biztons�gos. Minden be�rkez� adatot valamilyen egy�b m�don ellen�rizni
+ kell.
+ </para>
+ </sect1>
+
<sect1 id="security.variables">
<title>Felhaszn�l�t�l �rkez� adatok</title>
<para>
@@ -508,7 +710,7 @@
// tal�n valaki m�s�b�l?
unlink ($ordogi_valtozo);
-// Az el�r�s napl�z�sa... vagy nem?
+// Az el�r�s napl�z�sa... vagy egy /etc/passwd bejegyz�s�?
fputs ($fp, $ordogi_valtozo);
// Valami egy�rtelm� dolog futtat�sa.. vagy rm -rf *?
@@ -570,51 +772,54 @@
</para>
</sect1>
- <sect1 id="security.general">
- <title>�ltal�nos meggondol�sok</title>
- <simpara>
- Lehetetlen megalkotni egy teljesen biztons�gos rendszert, ez�rt
- az �ltal�nos hozz��ll�s a kock�zat �s haszn�lhat�s�g megfelel�
- s�lyoz�sa. Ha minden felhaszn�l� �ltal beadott adat elfogad�s�hoz
- k�tf�le biometrikus azonos�t�s sz�ks�ges (mint a retina vagy
- ujjlenyomat ellen�rz�s), akkor rendk�v�l alapos rendszert
- k�sz�tett�l. Azonban �gy egy alapos k�rd��v kit�lt�se f�l �r�ba
- is beletelhet, ami arra fogja sarkalni a felhaszn�l�t, hogy
- megpr�b�lja megker�lni az azonos�t�st. A j� biztons�g el�g
- ahhoz, hogy megfeleljen az elv�r�soknak an�lk�l, hogy
- megakad�lyozn� a felhaszn�l�t abban, hogy elv�gezze a munk�j�t.
- Val�j�ban n�h�ny biztons�gi t�mad�s csup�n az eredeti c�lon
- t�ll�t biztons�gi rendszerek kihaszn�l�s�b�l �ll.
- </simpara>
- <simpara>
- Egy mond�s, amire eml�kezned kell: A rendszer olyan er�s, mint
- a leggyeng�bb l�ncszem. Ha minden m�velet napl�z�sra ker�l,
- id�vel, el�r�ssel, t�pussal, stb., de a felhaszn�l�t csak
- egy egyszer� s�tivel azonos�tod, keveset �rsz a napl�kkal.
- </simpara>
- <simpara>
- Amikor kipr�b�lod a k�dokat, vedd figyelembe, hogy nincs
- lehet�s�ged minden hib�t figyelembe venni, m�g a legegyszer�bb
- oldalakon sem. A bej�v� adat ak�r teljesen m�s is lehet,
- mint amit elv�rsz, pl. egy rosszkedv� alkalmazott, vagy egy
- t�bb h�napos szabadid�vel rendelkez� cracker, ak�r egy
- billenty�zeten v�gigs�t�l� macska hat�sak�nt. Ez�rt c�lszer�
- logikusan v�gigtekinteni a k�don, �s megkeresni azokat a
- pontokat, ahol nem v�rt adatok l�phetnek be, �s megn�zni,
- hogy milyen manipul�ci�kon megy kereszt�l cs�kkentve vagy
- feler�s�tve a hiba jelent�s�g�t.
- </simpara>
- <simpara>
- Az Internet tele van olyan emberekkel, akik �gy akarnak
- nevet szerezni maguknak, hogy felt�rik a k�dodat,
- m�k�d�sk�ptelenn� teszik a webhelyedet, �rtelmetlen adatokat
- k�ldenek be, �s m�s m�dokon teszik �rdekess� a napodat.
- Nem sz�m�t, hogy nagy vagy kis webhelyed van, c�lpont lehetsz,
- mert online vagy, mivel van webkiszolg�l�d, amihez csatlakozni
- lehet. Sok cracker program nem tesz k�l�nbs�get m�ret
- szerint, csak v�gigl�pkednek az IP blokkokon �ldozatokat
- keresve. Pr�b�lj meg nem k�z�tt�k lenni.
- </simpara>
+ <sect1 id="security.hiding">
+ <title>PHP elrejt�se</title>
+ <para>
+ N�h�ny egyszer� m�dszerrel elrejtheted azt, hogy PHP-t haszn�lsz,
+ �gy lass�tva le a t�mad�t, aki fel akarja der�teni a rendszered
+ gyenge pontjait. A php.ini-ben az expose_php = off be�ll�t�ssal
+ cs�kkentheted ezeket az inform�ci�kat.
+ </para>
+ <para>
+ M�sik taktika, hogy a webszervert (pl. apache) �gy �ll�tod be
+ a .htaccess-en vagy az apache konfigur�ci�s f�jl�ban, hogy
+ k�l�nb�z� t�pus� f�jlokat futtass a PHP-n kereszt�l. M�s
+ f�lrevezet� f�jlkiterjeszt�seket haszn�lhatsz:
+ <example>
+ <title>PHP elrejt�se m�s nyelvk�nt</title>
+ <programlisting role="apache-conf">
+<![CDATA[
+# �gy t�nik, mintha PHP helyett m�st haszn�ln�l
+AddType application/x-httpd-php .asp .py .pl
+]]>
+ </programlisting>
+ </example>
+ vagy teljesen ismeretlent is megadhatsz:
+ <example>
+ <title>ismeretlen t�pusok haszn�lata PHP f�jlok kiterjeszt�sek�nt</title>
+ <programlisting role="apache-conf">
+<![CDATA[
+# PHP k�dok teljesen ismeretlen t�pus�nak t�nnek
+AddType application/x-httpd-php .bop .foo .133t
+]]>
+ </programlisting>
+ </example>
+ vagy html k�dk�nt is elrejtheted, amely csek�ly teljes�tm�nycs�kken�st okoz,
+ mivel minden html oldal �tmegy a PHP-n:
+ <example>
+ <title>html t�pus haszn�lata PHP f�jlkiterjeszt�sk�nt</title>
+ <programlisting role="apache-conf">
+<![CDATA[
+# PHP k�dok html t�pus�nak t�nnek
+AddType application/x-httpd-php .htm .html
+]]>
+ </programlisting>
+ </example>
+ Ahhoz, hogy ez j�l m�k�dj�n, minden PHP f�jlodat �t kell nevezni
+ a fenti kiterjeszt�sek valamelyik�nek megfelel�en. Mivel ez is az
+ elrejt�z�sen / ismeretlens�gen alapul� v�delmi forma, kev�s h�tr�nya
+ mellett csek�ly megakad�lyoz� int�zked�st jelent.
+ </para>
</sect1>
<sect1 id="security.current">
@@ -651,4 +856,7 @@
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
-->
Index: phpdoc/hu/chapters/config.xml
diff -u phpdoc/hu/chapters/config.xml:1.15 phpdoc/hu/chapters/config.xml:1.16
--- phpdoc/hu/chapters/config.xml:1.15 Wed Dec 12 15:50:49 2001
+++ phpdoc/hu/chapters/config.xml Wed Dec 19 20:20:50 2001
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="iso-8859-2"?>
-<!-- EN-Revision: 1.16 Maintainer: goba Status: ready -->
+<!-- EN-Revision: 1.32 Maintainer: pgerzson Status: ready -->
+<!-- CREDITS: goba -->
<chapter id="configuration">
<title>Konfigur�ci�</title>
@@ -15,8 +16,31 @@
elindul. A <acronym>CGI</acronym> verzi�ban ez minden
megh�v�skor megt�rt�nik.
</simpara>
+ <para>
+ <example>
+ <title>php.ini p�lda</title>
+ <programlisting role="ini">
+<![CDATA[
+; any text on a line after an unquoted semicolon (;) is ignored
+[php] ; section markers (text within square brackets) are also ignored
+; Boolean values can be set to either:
+; true, on, yes
+; or false, off, no, none
+register_globals = off
+magic_quotes_gpc = yes
- <simpara>
+; you can enclose strings in double-quotes
+include_path = ".:/usr/local/lib/php"
+
+; backslashes are treated the same as any other character
+include_path = ".;c:\php\lib"
+]]>
+</programlisting>
+<!-- TODO: add more details about values and expressions -->
+ </example>
+ </para>
+
+ <simpara>
Ha a PHP-t Apache modulk�nt haszn�lod, akkor a
be�ll�t�sokat az Apache konfigur�ci�s
f�jlj�nak direkt�v�ival �s .htaccess f�jlokkal is
@@ -84,6 +108,24 @@
</variablelist>
</para>
+ <para>
+ <example>
+ <title>Apache konfigur�ci�s p�lda</title>
+ <programlisting role="ini">
+<![CDATA[
+<IfModule mod_php4.c>
+ php_value include_path ".:/usr/local/lib/php"
+ php_flag safe_mode on
+</IfModule>
+<IfModule mod_php3.c>
+ php3_include_path ".:/usr/local/lib/php"
+ php3_safe_mode on
+</IfModule>
+]]>
+</programlisting>
+ </example>
+ </para>
+
<simpara>
A konfigur�ci�s be�ll�t�sokat lek�rheted
a <function>phpinfo</function>-val. Egyenk�nti
@@ -357,73 +399,99 @@
<type>string</type>
</term>
<listitem>
- <para>
- Be�ll�tja a GET/POST/COOKIE sorrendet a v�ltoz�k l�trehoz�s�hoz.
- Az alapbe�ll�t�s� �rt�k "GPC". Ha p�ld�ul ezt "GP"-re �rod �t,
- a PHP figyelmen k�v�l fogja hagyni a cookie-kat, �s ha van egy
- POST �s egy GET �rt�ked ugyanazzal a n�vvel, a PHP a POST
- �rt�ket teszi be a n�v �ltal megadott v�ltoz�ba.
- </para>
+ <para>
+ Be�ll�tja a GET/POST/COOKIE sorrendet a v�ltoz�k l�trehoz�s�hoz.
+ Az alapbe�ll�t�s� �rt�k "GPC". Ha p�ld�ul ezt "GP"-re
+�rod �t,
+ a PHP figyelmen k�v�l fogja hagyni a cookie-kat, �s ha van egy
+ POST �s egy GET �rt�ked ugyanazzal a n�vvel, a PHP a POST
+ �rt�ket teszi be a n�v �ltal megadott v�ltoz�ba.
+ </para>
+ <para>
+ Ez az opci� nem el�rhet� PHP 4-ben.
+ Haszn�ld helyette a <link
+linkend="ini.variables-order">variables_order</link>-t!
+ </para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="ini.variables-order">
+ <term>
+ <parameter>variables_order</parameter>
+ <type>string</type>
+ </term>
+ <listitem>
+ <para>
+ Be�ll�tja az �n. EGPCS (Environment - k�rnyezeti, GET, POST, Cookie,
+ Server) v�ltoz�k glob�lis megfelel�inek l�trehoz�si sorrendj�t.
+ Az alapbe�ll�t�s az "EGPCS". Ha p�ld�ul "GP"-re van be�ll�tva,
+ akkor emiatt a PHP figyelmen k�v�l hagyja a k�rnyezeti �s szerver
+ v�ltoz�kat valamint a cookie-kat (s�tiket), �s minden GET-ben kapott
+ v�ltoz�t fel�l�r a POST met�dussal elk�ld�tt, azonos nev� v�ltoz�.
+ </para>
+ <para>
+ L�sd m�g: <link linkend="ini.register-globals">register_globals</link>!
+ </para>
</listitem>
</varlistentry>
<varlistentry id="ini.ignore-user-abort">
<term>
- <parameter>ignore_user_abort</parameter>
- <type>string</type>
+ <parameter>ignore_user_abort</parameter>
+ <type>string</type>
</term>
<listitem>
- <para>
- Alapbe�ll�t�sban "On". Ha kikapcsolod, a szkriptek le�llnak, amikor
- megpr�b�lnak k�ldeni a kliensnek valamit, miut�n a kliens lez�rta
- a kapcsolat.
- <function>ignore_user_abort</function>.
- </para>
+ <para>
+ Alapbe�ll�t�sban "On". Ha kikapcsolod, a szkriptek le�llnak, amikor
+ megpr�b�lnak k�ldeni a kliensnek valamit, miut�n a kliens lez�rta
+ a kapcsolat.
+ <function>ignore_user_abort</function>.
+ </para>
</listitem>
</varlistentry>
<varlistentry id="ini.include-path">
<term>
- <parameter>include_path</parameter>
- <type>string</type>
+ <parameter>include_path</parameter>
+ <type>string</type>
</term>
<listitem>
- <para>
- Egy k�nyvt�rlist�t hat�roz meg, ahol a
- <function>require</function>, <function>include</function>
- �s <function>fopen_with_path</function> f�ggv�nyek a f�jlokat
- keresik. A form�tum a rendszer <envar>PATH</envar>
- k�rnyezeti v�ltoz�j�nak form�tum�val egyez�: egy k�nyvt�rlista kett�spontokkal
- elv�lasztva UNIX alatt, pontosvessz�vel Windows alatt.
- <example>
- <title>UNIX include_path</title>
- <programlisting role="php3.ini">
+ <para>
+ Egy k�nyvt�rlist�t hat�roz meg, ahol a
+ <function>require</function>, <function>include</function>
+ �s <function>fopen_with_path</function> f�ggv�nyek a f�jlokat
+ keresik. A form�tum a rendszer <envar>PATH</envar>
+ k�rnyezeti v�ltoz�j�nak form�tum�val egyez�: egy k�nyvt�rlista kett�spontokkal
+ elv�lasztva UNIX alatt, pontosvessz�vel Windows alatt.
+ <example>
+ <title>UNIX include_path</title>
+ <programlisting role="php3.ini">
<![CDATA[
include_path=.:/home/httpd/php-lib
]]>
-</programlisting>
- </example>
- <example>
- <title>Windows include_path</title>
- <programlisting role="php3.ini">
+ </programlisting>
+ </example>
+ <example>
+ <title>Windows include_path</title>
+ <programlisting role="php3.ini">
<![CDATA[
include_path=".;c:\www\phplib"
]]>
-</programlisting>
- </example>
- Alapbe�ll�t�s� �rt�k a <literal>.</literal>
- (pont), azaz csak a szkript k�nyvt�ra.</para>
+ </programlisting>
+ </example>
+ Alapbe�ll�t�s� �rt�k a <literal>.</literal>
+ (pont), azaz csak a szkript k�nyvt�ra.
+ </para>
</listitem>
</varlistentry>
<varlistentry id="ini.isapi-ext">
<term>
- <parameter>isapi_ext</parameter>
- <type>string</type>
+ <parameter>isapi_ext</parameter>
+ <type>string</type>
</term>
<listitem>
- <para>
- </para>
+ <para>
+ </para>
</listitem>
</varlistentry>
@@ -559,7 +627,11 @@
<varname>$HTTP_SERVER_VARS</varname>
asszociat�v glob�lis t�mb�kkel.
</para>
- </listitem>
+ <para>
+ Figyelj arra, hogy ahhoz ez m�k�dj�n, az apache konfigur�ci�s
+ f�jlj�ban a Directory blokkban az AllowOveride All be�ll�t�st kell megadni.
+ </para>
+ </listitem>
</varlistentry>
<varlistentry id="ini.short-open-tag">
@@ -630,11 +702,11 @@
<type>string</type>
</term>
<listitem>
- <para>
- Ebbe az ideiglenes k�nyvt�rba fogja a PHP
- elmenteni a weben felt�lt�tt f�jlokat. �rhat�nak
- kell lennie a felhaszn�l� sz�m�ra, ami alatt a PHP fut.
- </para>
+ <para>
+ Ebbe az ideiglenes k�nyvt�rba fogja a PHP
+ elmenteni a weben felt�lt�tt f�jlokat. �rhat�nak
+ kell lennie a felhaszn�l� sz�m�ra, ami alatt a PHP fut.
+ </para>
</listitem>
</varlistentry>
@@ -683,7 +755,7 @@
</para>
</sect2>
- <sect2 id="ini.sect.mail">
+ <!--sect2 id="ini.sect.mail">
<title>Levelez�s be�ll�t�si lehet�s�gei</title>
<variablelist>
@@ -734,7 +806,7 @@
</varlistentry>
</variablelist>
- </sect2>
+ </sect2 -->
<sect2 id="ini.sect.safe-mode">
<title>Safe Mode be�ll�t�si lehet�s�gek</title>
@@ -747,8 +819,9 @@
</term>
<listitem>
<para>
- Ki/bekapcsolja a PHP "safe mode" funkci�j�t. L�sd m�g a
- <link linkend="security">Biztons�g c�m� fejezetet</link>.
+ Ki/bekapcsolja a PHP "safe mode" funkci�j�t. L�sd m�g a
+ <link linkend="security">Biztons�g</link> �s
+ <link linkend="features.safe-mode">Safe Mode</link> c. fejezeteket!
</para>
</listitem>
</varlistentry>
@@ -916,7 +989,39 @@
</para>
</listitem>
</varlistentry>
+
+ <varlistentry id="ini.mysql.default-port">
+ <term>
+ <parameter>mysql.default_port</parameter>
+ <type>string</type>
+ </term>
+ <listitem>
+ <para>
+ Ha nincs egy�b portsz�m megadva, akkor ezt haszn�lja
+ az adatb�ziskiszolg�l�hoz t�rt�n� csatlakoz�skor.
+ Ha nincs alap�rt�k megadva, akkor a portsz�mot a
+ <literal>MYSQL_TCP_PORT</literal> k�rnyezeti v�ltoz�,
+ az <filename>/etc/services</filename> beli <literal>mysql-tcp</literal>
+ bejegyz�s vagy a ford�t�skor megadott <literal>MYSQL_PORT</literal>
+ �lland� adja - ebben a vizsg�lati sorrendben. Win32 alatt csak a
+ <literal>MYSQL_PORT</literal> �lland�t haszn�lja.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry id="ini.mysql.default-socket">
+ <term>
+ <parameter>mysql.default_socket</parameter>
+ <type>string</type>
+ </term>
+ <listitem>
+ <para>
+ Az alap�rtelmez�s szerinti socket nevet helyi adatb�zis-kiszolg�l�hoz
+ t�rt�n� kapcsol�d�s eset�n haszn�lja, ha nincs m�s n�v megadva.
+ </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="ini.mysql.max-persistent">
<term>
<parameter>mysql.max_persistent</parameter>
@@ -1070,9 +1175,12 @@
(l�sd a SESAM k�zik�nyvet):
<informalexample>
<programlisting role="bs2000">
+<![CDATA[
CNF=B
NAM=K
-NOTYPE</programlisting>
+NOTYPE
+]]>
+ </programlisting>
</informalexample>
</para>
</listitem>
@@ -1653,4 +1761,7 @@
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
-->