Date: 07/07/00
- Next message: Egon Schmid: "Re: [PHP-DOC] cvs: phpdoc /hu/chapters intro.xml security.xml"
- Previous message: Egon Schmid: "[PHP-DOC] cvs: phpdoc /hu/chapters config.xml"
- Next in thread: Egon Schmid: "Re: [PHP-DOC] cvs: phpdoc /hu/chapters intro.xml security.xml"
- Reply: Egon Schmid: "Re: [PHP-DOC] cvs: phpdoc /hu/chapters intro.xml security.xml"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
jah Fri Jul 7 12:15:35 2000 EDT
Added files:
/phpdoc/hu/chapters security.xml
Modified files:
/phpdoc/hu/chapters intro.xml
Log:
And more. Hope there aren't Windows line-endings anymore.
Index: phpdoc/hu/chapters/intro.xml
diff -u phpdoc/hu/chapters/intro.xml:1.1 phpdoc/hu/chapters/intro.xml:1.2
--- phpdoc/hu/chapters/intro.xml:1.1 Fri Jul 7 11:03:05 2000
+++ phpdoc/hu/chapters/intro.xml Fri Jul 7 12:15:35 2000
@@ -1,176 +1,176 @@
- <chapter id="introduction">
- <title>Az első PHP oldal</title>
-
- <sect1 id="intro-whatis">
- <title>Mi az a PHP?</title>
- <simpara>
- A PHP (hivatalosan "PHP: Hypertext Preprocessor") egy szerver oldali
- HTML-be ágyazott script-nyelv.
- </simpara>
- <para>
- Egyszerű meghatározás, de mit is jelent ez valójában? Egy példán bemutatva:
- </para>
- <para>
- <example>
- <title>Egy bevezető példa</title>
- <programlisting role="php">
-<html>
- <head>
- <title>Példa</title>
- </head>
- <body>
- <?php echo "Helló, Én egy PHP Script vagyok!"; ?>
- </body>
-</html>
- </programlisting>
- </example>
- </para>
- <para>
- Vedd észre, hogy ez mennyire más, mint egy hagyományos
- CGI script, amit más nyelveken írtak, mint a Perl vagy a C.
- Ahelyett, hogy írnál egy programot sok parancsal, hogy HTML
- kimenetet produkáljon, csak egy HTML file-t kell készítened
- egy kis beépített kóddal, hogy ezt megtehesd. A PHP
- kódok <link linkend="language.basic-syntax.phpmode">speciális
- kezdő és befejező tag-ekkel</link> rendelkeznek, és
- így biztosítják, hogy a "PHP módból" ki-be ugorhass.
- </para>
- <para>
- Az különbözteti meg a PHP-t például a kliens
- oldali JavaScript-től, hogy a kód a szerveren fut. Ha lenne egy
- ilyen oldalad, amit az első példában látsz,
- akkor ha böngészőben megnézed az eredményt,
- nem tudod megállapítani, hogy milyen kód
- állíthatta azt elő. Ráadásul beállíthatod úgy a szervered,
- hogy minden HTML file-t dolgozzon fel PHP parancsokat keresve,
- és akkor már tényleg nem lesz rá mód, hogy kitalálják, mit rejtegetsz.
- </para>
- </sect1>
-
- <sect1 id="intro-whatcando">
- <title>Mit tud a PHP?</title>
- <para>
- Röviden: a PHP mindent tud, amit egy CGI programmal meg tudsz
- csinálni, például kérdőív adatok lekérése, dinamikus
- tartalomelőállítás, vagy cookie-kezelés.
- </para>
- <para>
- Talán a legjobb és legfontosabb tulajdonsása a nyelvnek
- az adatbázisok széles körű támogatása.
- Egy adatbázisokat kezelő weblap készítése
- PHP segítségével hihetetlenül egyszerű.
- A következő adatbázisok támogatottak jelenleg:
- <blockquote>
- <simplelist columns="3">
- <member>Adabas D</member>
- <member>dBase</member>
- <member>Empress</member>
- <member>FilePro</member>
- <member>Informix</member>
- <member>InterBase</member>
- <member>mSQL</member>
- <member>MySQL</member>
- <member>Oracle</member>
- <member>PostgreSQL</member>
- <member>Solid</member>
- <member>Sybase</member>
- <member>Velocis</member>
- <member>Unix dbm</member>
- </simplelist>
- </blockquote>
- </para>
- <para>
- A PHP támogatja a kommunikációt más szolgáltatásokkal is
- különböző protokolok segítségével, úgy mint IMAP, SNMP, NNTP,
- POP3 és HTTP. Sőt, nyithatsz hálózati foglalatokat is
- (socket) és kommunikálhatsz más protokolokkal is.
- </para>
-<!--
- <figure>
- <title>Internal Structure</title>
- <graphic fileref="../images/php3_internal_structure.gif"/>
- </figure>
- <figure>
- <title>Request Scheme</title>
- <graphic fileref="../images/php3_request_scheme.gif"/>
- </figure>
--->
- </sect1>
-
- <sect1 id="intro-history">
- <title>A PHP rövid története</title>
- <simpara>
- A PHP-t &link.rasmus; agyalta ki valamikor 1994 őszén. Az
- első kiadatlan verziókat a saját honlapján használta, hogy
- figyelemmel kísérje, kik látogatják az oldalait.
- Az első mások által is használt verzió
- 1995 elején látott napvilágot és "Personal Home
- Page Tools" néven volt ismert. Egy nagyon egyszerű feldolgozó
- programból állt, ami csak néhány speciális
- makrót értett meg, valamint tartalmazott számos eszközt,
- amiket akkoriban gyakran használtak a honlapokon (számláló,
- vendégkönyv és hasonlók). A feldolgozó program
- újraírása után 1995 közepén a "PHP/FI 2.
- verzió" nevet kapta. A FI Rasmus egy másik szoftveréből
- került bele, amit HTML form információk feldolgozására
- készített. Ötvözte a "Personal Home Page Tools" programját
- a "Form Interpreter"-el és mSQL támogatást adott hozzá.
- Így született a PHP/FI. A program bámulatos ütemben
- fejlődött, és az emberek elkezdték kódokkal
- segíteni a fejlesztést..
- </simpara>
- <simpara>
- Nehéz lenne pontos adatokat megadni, de a PHP/FI-t körülbelül
- 15.000 website-on használták 1996 végére
- világszerte. 1997 közepére ez a szám 50.000 fölé
- nőtt. 1997 közepe nagy változást jelentett a
- PHP fejlesztésében. Rasmus saját kis projectjéből
- egy sokkal jobban szervezett csapatmunka lett. A feldolgozó
- programot Zeev Suraski és Andi Gutmans teljesen újraírták, és ez
- alkotta a lelkét az új PHP3-nak. Sok kódot sikerült
- átvenni a PHP/FI-ből, másokat pedig teljesen újra kellett
- írni.
- </simpara>
- <simpara>
- Most a PHP3 számos üzleti termékkel együtt kerül
- forgalomba, úgymint a C2 StrongHold web szerver és a RedHat Linux.
- A <ulink url="&url.netcraft;">NetCraft</ulink> adatai szerint (lásd
- <ulink url="&url.netcraft-survey;">Netcraft Web Server
- Survey</ulink>) egy óvatos becsléssel a PHP-t több mint 1.000.000
- site-on használják szerte a világon! Talán ez a szám jobban
- érzékelhető, ha hozzáteszem, hogy ez több, mint amennyi site
- Netscape Enterprise szerveren fut az Interneten.
- </simpara>
-<!--
- <figure>
- <title>NetCraft Webserver Survey</title>
- <graphic fileref="&url.php.stats;"/>
- </figure>
--->
- <simpara>
- Ezen leírás készítése idején éppen egy komoly fejlesztési munka
- folyik egy új PHP generáció kifejlesztésére, ami a <ulink
- url="&url.zend;">Zend</ulink> scripting engine-t használja
- magasabb teljesítmény eléréséhez, és az Apache-tól eltérő
- szervereken is képes lesz modulként futni.
- </simpara>
- </sect1>
-
- </chapter>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:"../../manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
--->
+ <chapter id="introduction">
+ <title>Az első PHP oldal</title>
+
+ <sect1 id="intro-whatis">
+ <title>Mi az a PHP?</title>
+ <simpara>
+ A PHP (hivatalosan "PHP: Hypertext Preprocessor") egy szerver oldali
+ HTML-be ágyazott script-nyelv.
+ </simpara>
+ <para>
+ Egyszerű meghatározás, de mit is jelent ez valójában? Egy példán bemutatva:
+ </para>
+ <para>
+ <example>
+ <title>Egy bevezető példa</title>
+ <programlisting role="php">
+<html>
+ <head>
+ <title>Példa</title>
+ </head>
+ <body>
+ <?php echo "Helló, Én egy PHP Script vagyok!"; ?>
+ </body>
+</html>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ Vedd észre, hogy ez mennyire más, mint egy hagyományos
+ CGI script, amit más nyelveken írtak, mint a Perl vagy a C.
+ Ahelyett, hogy írnál egy programot sok parancsal, hogy HTML
+ kimenetet produkáljon, csak egy HTML file-t kell készítened
+ egy kis beépített kóddal, hogy ezt megtehesd. A PHP
+ kódok <link linkend="language.basic-syntax.phpmode">speciális
+ kezdő és befejező tag-ekkel</link> rendelkeznek, és
+ így biztosítják, hogy a "PHP módból" ki-be ugorhass.
+ </para>
+ <para>
+ Az különbözteti meg a PHP-t például a kliens
+ oldali JavaScript-től, hogy a kód a szerveren fut. Ha lenne egy
+ ilyen oldalad, amit az első példában látsz,
+ akkor ha böngészőben megnézed az eredményt,
+ nem tudod megállapítani, hogy milyen kód
+ állíthatta azt elő. Ráadásul beállíthatod úgy a szervered,
+ hogy minden HTML file-t dolgozzon fel PHP parancsokat keresve,
+ és akkor már tényleg nem lesz rá mód, hogy kitalálják, mit rejtegetsz.
+ </para>
+ </sect1>
+
+ <sect1 id="intro-whatcando">
+ <title>Mit tud a PHP?</title>
+ <para>
+ Röviden: a PHP mindent tud, amit egy CGI programmal meg tudsz
+ csinálni, például kérdőív adatok lekérése, dinamikus
+ tartalomelőállítás, vagy cookie-kezelés.
+ </para>
+ <para>
+ Talán a legjobb és legfontosabb tulajdonsása a nyelvnek
+ az adatbázisok széles körű támogatása.
+ Egy adatbázisokat kezelő weblap készítése
+ PHP segítségével hihetetlenül egyszerű.
+ A következő adatbázisok támogatottak jelenleg:
+ <blockquote>
+ <simplelist columns="3">
+ <member>Adabas D</member>
+ <member>dBase</member>
+ <member>Empress</member>
+ <member>FilePro</member>
+ <member>Informix</member>
+ <member>InterBase</member>
+ <member>mSQL</member>
+ <member>MySQL</member>
+ <member>Oracle</member>
+ <member>PostgreSQL</member>
+ <member>Solid</member>
+ <member>Sybase</member>
+ <member>Velocis</member>
+ <member>Unix dbm</member>
+ </simplelist>
+ </blockquote>
+ </para>
+ <para>
+ A PHP támogatja a kommunikációt más szolgáltatásokkal is
+ különböző protokolok segítségével, úgy mint IMAP, SNMP, NNTP,
+ POP3 és HTTP. Sőt, nyithatsz hálózati foglalatokat is
+ (socket) és kommunikálhatsz más protokolokkal is.
+ </para>
+<!--
+ <figure>
+ <title>Internal Structure</title>
+ <graphic fileref="../images/php3_internal_structure.gif"/>
+ </figure>
+ <figure>
+ <title>Request Scheme</title>
+ <graphic fileref="../images/php3_request_scheme.gif"/>
+ </figure>
+-->
+ </sect1>
+
+ <sect1 id="intro-history">
+ <title>A PHP rövid története</title>
+ <simpara>
+ A PHP-t &link.rasmus; agyalta ki valamikor 1994 őszén. Az
+ első kiadatlan verziókat a saját honlapján használta, hogy
+ figyelemmel kísérje, kik látogatják az oldalait.
+ Az első mások által is használt verzió
+ 1995 elején látott napvilágot és "Personal Home
+ Page Tools" néven volt ismert. Egy nagyon egyszerű feldolgozó
+ programból állt, ami csak néhány speciális
+ makrót értett meg, valamint tartalmazott számos eszközt,
+ amiket akkoriban gyakran használtak a honlapokon (számláló,
+ vendégkönyv és hasonlók). A feldolgozó program
+ újraírása után 1995 közepén a "PHP/FI 2.
+ verzió" nevet kapta. A FI Rasmus egy másik szoftveréből
+ került bele, amit HTML form információk feldolgozására
+ készített. Ötvözte a "Personal Home Page Tools" programját
+ a "Form Interpreter"-el és mSQL támogatást adott hozzá.
+ Így született a PHP/FI. A program bámulatos ütemben
+ fejlődött, és az emberek elkezdték kódokkal
+ segíteni a fejlesztést..
+ </simpara>
+ <simpara>
+ Nehéz lenne pontos adatokat megadni, de a PHP/FI-t körülbelül
+ 15.000 website-on használták 1996 végére
+ világszerte. 1997 közepére ez a szám 50.000 fölé
+ nőtt. 1997 közepe nagy változást jelentett a
+ PHP fejlesztésében. Rasmus saját kis projectjéből
+ egy sokkal jobban szervezett csapatmunka lett. A feldolgozó
+ programot Zeev Suraski és Andi Gutmans teljesen újraírták, és ez
+ alkotta a lelkét az új PHP3-nak. Sok kódot sikerült
+ átvenni a PHP/FI-ből, másokat pedig teljesen újra kellett
+ írni.
+ </simpara>
+ <simpara>
+ Most a PHP3 számos üzleti termékkel együtt kerül
+ forgalomba, úgymint a C2 StrongHold web szerver és a RedHat Linux.
+ A <ulink url="&url.netcraft;">NetCraft</ulink> adatai szerint (lásd
+ <ulink url="&url.netcraft-survey;">Netcraft Web Server
+ Survey</ulink>) egy óvatos becsléssel a PHP-t több mint 1.000.000
+ site-on használják szerte a világon! Talán ez a szám jobban
+ érzékelhető, ha hozzáteszem, hogy ez több, mint amennyi site
+ Netscape Enterprise szerveren fut az Interneten.
+ </simpara>
+<!--
+ <figure>
+ <title>NetCraft Webserver Survey</title>
+ <graphic fileref="&url.php.stats;"/>
+ </figure>
+-->
+ <simpara>
+ Ezen leírás készítése idején éppen egy komoly fejlesztési munka
+ folyik egy új PHP generáció kifejlesztésére, ami a <ulink
+ url="&url.zend;">Zend</ulink> scripting engine-t használja
+ magasabb teljesítmény eléréséhez, és az Apache-tól eltérő
+ szervereken is képes lesz modulként futni.
+ </simpara>
+ </sect1>
+
+ </chapter>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
Index: phpdoc/hu/chapters/security.xml
+++ phpdoc/hu/chapters/security.xml
<chapter id="security">
<title>Biztonság</title>
<simpara>
A PHP egy igen hatékony nyelv és feldolgozó program, akár
a szerverben egy modulként van jelen, akár egy különálló
<acronym>CGI</acronym> futtatható állományként működik, képes elérni file-okat, futtatni
parancsokat és hálózati kapcsolatokat nyitni a szerveren. Ezek a
tulajdonságok alapesetben veszélyessé is tehetik más, a webszerveren
futó alkalmazások számára. A PHP-t úgy fejlesztették, hogy biztonságosabb
legyen CGI programok írására, mint a Perl vagy C nyelvek. A PHP a fordítási
és futásidejű beállítások helyes választásával megadja neked a
szabadság és biztonság megfelelő kombinációját.
</simpara>
<simpara>
Mivel sok különböző formája van a PHP használatának, számos
konfigurációs lehetőség van a működésének beállítására. A
lehetőségek nagy száma garantálja, hogy a PHP-t sokféle célra
felhasználd, de egyben azt is jelenti, hogy ezek és a szerver
beállításainak kombinációi kritikus helyzeteket teremthetnek.
Ez a fejezet kitér a különböző konfigurációs beállítás-kombinációkra,
és azokra az esetekre, amikor ezek biztonsággal használhatóak.
</simpara>
<sect1 id="security.cgi">
<title>CGI futtatható állomány</title>
<sect2>
<sect2 id="security.cgi.default">
<simpara>
<sect1 id="security.apache">
<!-- Keep this comment at the end of the file
<title>Lehetséges támadások</title>
<simpara>
A PHP <acronym>CGI</acronym> futtatható állomáynként való használata
egy telepítési lehetőség azok számára, akik valami oknál fogva nem
szeretnék a PHP-t modulként a szerverbe integrálni (pl. Apache),
vagy a PHP-t más CGI wrapper-ekkel szeretnék használni biztonságos
chroot és setuid környezet kialakítása érdekében. Ez a forma magával
vonja azt, hogy a PHP-t a szerver cgi-bin könyvtárába telepíted fel.
A CERT advisory <ulink url="&url.cert;">CA-96.11</ulink> azt tanácsolja,
hogy ne tegyél feldolgozó programot a cgi-bin könyvtárba.
Bár a PHP használható mint egy egyedülálló feldolgozó program, a PHP-t
úgy tervezték, hogy az ilyen telepítésekből adódó támadásokat kivédje:
</simpara>
<itemizedlist>
<listitem>
<simpara>
Rendszerfile-ok elérése: <filename
role="url">http://domain.nev/cgi-bin/php?/etc/passwd>
</simpara>
<simpara>
Az URL lekérési információja (query information), ami
a kérdőjel (?) után található, parancssori paraméterként kerül
átadásra a feldolgozónak. Általában a feldolgozók megnyitják,
és lefuttatják az első paraméterként adott file-t.
</simpara>
<simpara>
Ha a PHP CGI futattható állományként hívódik meg, nem veszi figyelembe
a parancssori paramétereket.
</simpara>
</listitem>
<listitem>
<simpara>
Bármilyen web dokumentum elérése a szerveren: <filename
role="url">http://domain.nev/cgi-bin/php/titkos/doc.html>
</simpara>
<simpara>
Az elérési út információ (path information) az URL része, a
futtatható file neve után lévő
<filename role="uri">/titkos/doc.html</filename> a
<acronym>CGI</acronym> program által megnyitásra és futtatásra kerülő
file elérésének meghatározására használatos.
Tipikusan néhány web server beállítási lehetőség (Apache-ban:
Action) használatos a kérések átirányítására a dokumentumhoz, mint a
<filename role="url">http://domain.nev/titkos/script.php3>
a PHP interpreter számára. Ezzel a beállítással a szerver először
ellenőrzi az elérési engedélyeket a <filename
role="uri">/titkos</filename> könyvtárra, és ezután állítja elő
az átirányító kérést a <filename
role="url">http://domain.nev/cgi-bin/php/titkos/script.php3>
oldalra, amit így már a PHP feldolgoz.
Azonban ha eredetileg is ebben a formában volt megadva
a kérés, nem történik elérési ellenőrzés a <filename
role="uri">/titkos/script.php3</filename> file-ra, csak a
<filename role="uri">/cgi-bin/php</filename> file-ra. Ilyen módon
bárki, aki elérheti a <filename
role="uri">/cgi-bin/php</filename> címet, egyben tetszőleges
védett dokumentumot is elérhet.
</simpara>
<simpara>
A PHP esetében az <link
linkend="enable-force-cgi-redirect">--enable-force-cgi-redirect</link>
fordítási opció, a <link
linkend="ini.doc-root">doc_root</link> és <link
linkend="ini.user-dir">user_dir</link> konfigurációs lehetőségek
használhatóak ennek kivédésére, ha a szerver dokumentumainak
könyvtárfájában van olyan könyvtár, ami elérési korlátozásokkal
bír. Nézd meg az alábbi lehetőségeket a különböző kombinációkhoz!
</simpara>
</listitem>
</itemizedlist>
</sect2>
<title>1. eset : csak publikus file-ok</title>
Ha a szerveren nincs olyan tartalom, ami jelszó vagy IP alapú
védelemmel van ellátva, nincs szükség ezekre a konfigurációs
beállításokra. Ha a szerver nem engedélyezi az átirányításokat,
illetve ha a szervernek nincs módja biztonságos átirányítással
küldeni a kérést a PHP számára, megadhatod az <link
linkend="enable-force-cgi-redirect">--enable-force-cgi-redirect</link>
opciót a "configure" script számára. Meg kell győződnöd arról, hogy
a PHP script-jeid nem függnek egy speciális script hívási formától
sem, mint a <filename
role="php">http://domain.nev/cgi-bin/php/dir/script.php3>
vagy a <filename
role="php">http://domain.nev/dir/script.php3>.
</simpara>
<simpara>
Az átirányítás beállítása Apache alatt az
AddHandler és Action direktívákkal történik (lásd lentebb).
</simpara>
</sect2>
<sect2 id="security.cgi.force-redirect">
<title>2. eset : az --enable-force-cgi-redirect használata</title>
<simpara>
Ez a fordítási opció megakadályozza, hogy bárki meghívja a PHP-t egy <filename
role="php">http://domain.nev/cgi-bin/php/titkos/script.php3>.
URL-el. Ehelyett a PHP csak akkor fog elfogadni egy ilyen kérést
ha egy szerver átirányításban kapta.
</simpara>
<simpara>
Apache esetében tipikusan a következő direktívákkal történik a beállítás:
</simpara>
<programlisting role="apache-conf">
Action php3-script /cgi-bin/php
AddHandler php3-script .php3
</programlisting>
<simpara>
Ez a lehetőség csak az Apache web szerverrel tesztelt és azon
múlik, hogy az Apache beállítja a nem standard
<envar>REDIRECT_STATUS</envar> CGI környezeti változót ha
átirányított kérésrők van szó.
Ha a webszervered semmilyen módon nem közli, hogy ez egy direkt vagy
átirányított kérés volt-e, nem használhatod ezt az opciót, így
valamelyik másik módot kell használnod.
</simpara>
</sect2>
<sect2 id="security.cgi.doc-root">
<title>3. eset : a doc_root vagy user_dir beállítása</title>
<simpara>
Aktív tartalom elhelyezése a normál dokumentumok között,
(pl. scriptek és futtatható állományok) veszélyes gyakorlat lehet.
Ha például valamilyen beállítási hiba miatt a scriptek ahelyett,
hogy lefutnának hagyományos HTML dokumentumokként jelennek meg,
mindenki számára tisztán látható válnak kódolási technikáid és
pl. adatbázis jelszavaid. Ezért néhány rendszeradminisztrátor
inkább egy külön könyvtárat jelöl ki, ami csak a PHP CGI által
elérhető, és így mindig feldolgozásra kerül és nem jelenik meg
a script kódja.
</simpara>
<simpara>
Ha a fent leírt átirányítás azonosítási mód nem működik,
fontos, hogy egy különálló script doc_root-ot határozz meg,
ami nem azonos a web doc_root-al.
</simpara>
<simpara>
A PHP script dokumentumok gyökérkönyvtárát a
<link linkend="ini.doc-root">doc_root</link> konfigurációs beállítással
határohatod meg a
<link linkend="configuration.file">konfigurációs file</link>-ban, vagy a
<envar>PHP_DOCUMENT_ROOT</envar> környezeti változóban adhatod meg
ezt az értéket. Ha ez be van állítva a PHP CGI verziója a file
elérési útját a <parameter>doc_root</parameter> és a kérés elérési
út információja (path information) alapján állítja elő, ami azt
jelenti, hogy ezen a könyvtáron kívül nem futtatható file.
(kivéve a <parameter>user_dir</parameter> esetét).
</simpara>
<simpara>
Egy másik itt használható opció a <link
linkend="ini.user-dir">user_dir</link>. Ha ez nincs megadva, csak a
<parameter>doc_root</parameter> szabályozza a megnyitható file-ok
körét. Ekkor egy <filename
role="url">http://domain.nev/~user/doc.php3> URL nem a
"user" nevű felhasználó home könyvtárában lévő file-t keresi, hanem
a <filename role="uri">~user/doc.php3</filename> file-t keresi a
doc_root alatt (igen, egy tilde karakterrel kezdődő könyvtárban
[<literal>~</literal>]).
</simpara>
<simpara>
Ha a user_dir meg van adva, például <filename
role="dir">public_php</filename>, akkor a fenti <filename
role="url">http://domain.nev/~user/doc.php3> kérés a
<filename>doc.php3</filename> nevű file-t fogja megnyitni a "user"
nevű felhasználó home könyvtárában lévő
<filename role="dir">public_php</filename> könyvtárban. Ha a
"user" home könyvtára <filename role="dir">/home/user</filename>,
a lefuttatandó file a
<filename>/home/user/public_php/doc.php3</filename> lesz.
</simpara>
<simpara>
A <parameter>user_dir</parameter> kifejtés a
<parameter>doc_root</parameter> beállítástól függetlenül működik,
úgyhogy a dokumentum gyökér és felhasználói könyvtár beállításokat
külön is használhatod.
</simpara>
</sect2>
<sect2 id="security.cgi.shell">
<title>4. eset : PHP feldolgozó a web könyvtárfán kívül</title>
<para>
Egy rendkívül biztonságos lehetőség, ha a PHP feldolozót valahol a
web-en látható könyvtárakon kívülre teszed. Például a <filename
role="dir">/usr/local/bin</filename> könyvtárba. Az egyetlen
igazi hátránya ennek az opciónak az, hogy minden PHP script
első sorának egy ehhez hasonló sort kell megadnod:
<informalexample>
<programlisting>
#!/usr/local/bin/php
</programlisting>
</informalexample>
ami megadja, hogy hol található a PHP feldolgozó, ami lefuttatja majd ezt
a scriptet. Ráadásul minden PHP scriptednek futási jogot kell adni.
Azaz úgy kell eljárni, mint bármilyen más CGI programmal, amit Perl,
sh vagy bármilyen más nyelven írsz és a
<literal>#!</literal> shell-escape mechanizmust használja sajátmaga futtatására.
</para>
<para>
Ahhoz, hogy ebben az esetben a PHP helyesen kezelje a
<envar>PATH_INFO</envar> és a <envar>PATH_TRANSLATED</envar>
információkat, a PHP feldolgozót az <link
linkend="enable-discard-path">--enable-discard-path</link>
"configure" opcióval kell fordítani.
</para>
</sect2>
</sect1>
<title>Apache modul</title>
<simpara>
Ha a PHP-t Apache modulként használod, örökli az Apache
felhasználói engedélyeket (tipikusan a "nobody" nevű user alatt fut).
</simpara>
</sect1>
</chapter>
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->

