tpug Mon Dec 10 13:39:22 2001 EDT
Added files:
/phpdoc/tr/features safe-mode.xml
Log:
added by Alper up-to-date
Index: phpdoc/tr/features/safe-mode.xml
+++ phpdoc/tr/features/safe-mode.xml
<?xml version="1.0" encoding="iso-8859-9"?>
<!-- $Revision: 1.1 $ -->
<chapter id="features.safe-mode">
<title>G�venli Kip</title>
<para>
G�venli kip paylaşımlı-sunucu kavramının
getirdiği g�venlik sorunlarını
��zmeye y�nelik bir adımdır. Bu sorunu PHP seviyesinde ��zmeye
�alışmak,
mimari a�ıdan doğru değildir, fakat HTTP sunucusu ve
işletim sistemi
seviyesindeki alternatifler �ok ger�ek�i olmadığından, �ok
sayıda kişi,
�zellike ISS'ler, şimdilik g�venli kipi kullanırlar.
</para>
<para>
G�venli kipi kontrol eden direktifler şunlardır:
<programlisting role="ini">
<![CDATA[
safe_mode = Off
open_basedir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions =
]]>
</programlisting>
</para>
<para>
<link linkend="ini.safe-mode">safe_mode</link>'un aktif olduğu zamanlarda,
PHP, dosya fonksiyonlarıyla bir dosya �zerinde işlem yapmadan �nce o
dosyayla �alışmakta olan betiğin sahiplerini
karşılaştırır. �rneğin:
<programlisting role="ls">
<![CDATA[
-rw-rw-r-- 1 rasmus rasmus 33 Jul 1 19:20 script.php
-rw-r--r-- 1 root root 1116 May 26 18:01 /etc/passwd
]]>
</programlisting>
Bu betiği �alıştırmak:
<programlisting role="php">
<![CDATA[
<?php
readfile('/etc/passwd');
?>
]]>
</programlisting>
G�venli kipin a�ık olduğu zamanlarda şunun gibi bir hata ile
sonu�lanır:
<screen>
<![CDATA[
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2
]]>
</screen>
</para>
<para>
Eğer <link linkend="ini.safe-mode">safe_mode</link> yerine, open_basedir
ile bir dizin belirtirseniz, b�t�n dosya işlemleri belirtilen bu dizin
altında
ger�ekleşecektir. �rneğin (Apache httpd.conf �rneği):
<programlisting role="ini">
<![CDATA[
<Directory /docroot>
php_admin_value open_basedir /docroot
</Directory>
]]>
</programlisting>
Aynı script.php betiğini bu open_basedir ayarıyla
�alıştırırsanız
alacağınız sonu�:
<screen>
<![CDATA[
Warning: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2
]]>
</screen>
</para>
<para>
Ayrıca istediğiniz fonksiyonların kullanımdan
kaldırabilirsiniz. Bunu php.ini
dosyamıza eklersek:
<programlisting role="ini">
<![CDATA[
disable_functions readfile,system
]]>
</programlisting>
Şu �ıktıyı alırız:
<screen>
<![CDATA[
Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2
]]>
</screen>
</para>
<sect1 id="features.safe-mode.functions">
<title>G�venli Kip tarafından kısıtlanan/iptal edilen
fonksiyonlar</title>
<para>
<link linkend="features.safe-mode">Safe Mode</link> tarafından
kısıtlanan
fonksiyonların listesi b�y�k ihtimalle halen tam değil ve
yanlış olması
gayet m�mk�n:
<!-- TODO: add ¬e.sm.*; to the functions mentioned here.
That entity should link to this section -->
<table>
<title>G�venli Kip tarafından kısıtlanan fonksiyonlar</title>
<tgroup cols="2">
<thead>
<row>
<entry>Fonksiyon</entry>
<entry>Kısıtlama</entry>
</row>
</thead>
<tbody>
<row>
<entry><function>dbmopen</function></entry>
<entry>&sm.uidcheck;</entry>
</row>
<row>
<entry><function>dbase_open</function></entry>
<entry>&sm.uidcheck;</entry>
</row>
<row>
<entry><function>filepro</function></entry>
<entry>&sm.uidcheck;</entry>
</row>
<row>
<entry><function>filepro_rowcount</function></entry>
<entry>&sm.uidcheck;</entry>
</row>
<row>
<entry><function>filepro_retrieve</function></entry>
<entry>&sm.uidcheck;</entry>
</row>
<row>
<entry><function>ifx_*</function></entry>
<entry>sql_safe_mode kısıtlamaları, (!= G�venli
Kip)</entry>
<!-- TODO: more info on sql-safe-mode -->
</row>
<row>
<entry><function>ingres_*</function></entry>
<entry>sql_safe_mode kısıtlamaları, (!= G�venli
Kip)</entry>
<!-- TODO: more info on sql-safe-mode -->
</row>
<row>
<entry><function>mysql_*</function></entry>
<entry>sql_safe_mode kısıtlamaları, (!= G�venli
Kip)</entry>
<!-- TODO: more info on sql-safe-mode -->
</row>
<row>
<entry><function>pg_loimport</function></entry>
<entry>&sm.uidcheck;</entry>
<!-- source TODO: there is no PHP-warning for that safe-mode-restriction -->
</row>
<row>
<entry><function>posix_mkfifo</function></entry>
<entry>&sm.uidcheck.dir;</entry>
</row>
<row>
<entry><function>putenv</function></entry>
<entry>safe_mode_protected_env_vars ve safe_mode_allowed_env_vars
ini-direktiflerine uyar. Ayrıca <function>putenv</function>
hakkındaki d�k�manlara bakınız.</entry>
<!-- TODO: document those directives in chapters/config.xml -->
</row>
<row>
<entry><function>move_uploaded_file</function></entry>
<entry>&sm.uidcheck; <!-- TODO: check this --></entry>
</row>
<!-- TODO: from here on, add warning to the function itself -->
<row>
<entry><function>chdir</function></entry>
<entry>&sm.uidcheck.dir;</entry>
</row>
<row>
<entry><function>dl</function></entry>
<entry>&sm.disabled;</entry>
</row>
<row>
<entry><link linkend="language.operators.execution">ters tırnak
işlemi</link></entry>
<entry>&sm.disabled;</entry>
</row>
<row>
<entry><function>shell_exec</function> (ters tırnakların
fonksiyonal
eşi)</entry>
<entry>&sm.disabled;</entry>
</row>
<row>
<entry><function>exec</function></entry>
<!-- dirge: practical reasons => pratiksel neden -->
<entry>Sadece <link
linkend="ini.safe-mode-exec-dir">safe_mode_exec_dir</link> ile
belirtilen dizindeki programları
�alıştırabilirsiniz.
Pratiksel nedenlerden �t�r� şu an i�in programa giden yolda
<literal>..</literal> olmasına izin verilmiyor.</entry>
</row>
<row>
<entry><function>system</function></entry>
<entry>Sadece <link
linkend="ini.safe-mode-exec-dir">safe_mode_exec_dir</link> ile
belirtilen dizindeki programları
�alıştırabilirsiniz.
Pratiksel nedenlerden �t�r� şu an i�in programa giden yolda
<literal>..</literal> olmasına izin verilmiyor.</entry>
</row>
<row>
<entry><function>passthru</function></entry>
<entry>Sadece <link
linkend="ini.safe-mode-exec-dir">safe_mode_exec_dir</link> ile
belirtilen dizindeki programları
�alıştırabilirsiniz.
Pratiksel nedenlerden �t�r� şu an i�in programa giden yolda
<literal>..</literal> olmasına izin verilmiyor.</entry>
</row>
<row>
<entry><function>popen</function></entry>
<entry>Sadece <link
linkend="ini.safe-mode-exec-dir">safe_mode_exec_dir</link> ile
belirtilen dizindeki programları
�alıştırabilirsiniz.
Pratiksel nedenlerden �t�r� şu an i�in programa giden yolda
<literal>..</literal> olmasına izin verilmiyor.</entry>
<!-- TODO: not sure. popen uses a completely different implementation
Don't know why, don't know whether it's behaving the same -->
</row>
<row>
<entry><function>mkdir</function></entry>
<entry>&sm.uidcheck.dir;</entry>
</row>
<row>
<entry><function>rmdir</function></entry>
<entry>&sm.uidcheck;</entry>
</row>
<row>
<entry><function>rename</function></entry>
<entry>&sm.uidcheck; &sm.uidcheck.dir;<!-- on the old name only, it seems. Is
rename preventing moving files? --></entry>
</row>
<row>
<entry><function>unlink</function></entry>
<entry>&sm.uidcheck; &sm.uidcheck.dir;</entry>
</row>
<row>
<entry><function>copy</function></entry>
<entry>&sm.uidcheck; &sm.uidcheck.dir; (<parameter>kaynak</parameter>
ve <parameter>hedef</parameter> i�in) </entry>
</row>
<row>
<entry><function>chgrp</function></entry>
<entry>&sm.uidcheck;</entry>
</row>
<row>
<entry><function>chown</function></entry>
<entry>&sm.uidcheck;</entry>
</row>
<row>
<entry><function>chmod</function></entry>
<entry>&sm.uidcheck; Ek olarak SUID, SGID ve sticky bitlerini
a�amazsınız.</entry>
</row>
<row>
<entry><function>touch</function></entry>
<entry>&sm.uidcheck; &sm.uidcheck.dir;</entry>
</row>
<row>
<entry><function>symlink</function></entry>
<entry>&sm.uidcheck; &sm.uidcheck.dir; (not: sadece hedef kontrol
ediliyor)</entry>
</row>
<row>
<entry><function>link</function></entry>
<entry>&sm.uidcheck; &sm.uidcheck.dir; (not: sadece hedef kontrol
ediliyor)</entry>
</row>
<row>
<entry><function>getallheaders</function></entry>
<entry>G�venli Kipte, 'authorization' ile başlayan
başlıklar
(b�y�k/k���k harf ayrımı yok)
d�nd�r�lmez. Uyarı: Bu <function>getallheader</function>
fonksiyonunun aol-server uyarlamasında bozuk!</entry>
</row>
<row>
<entry><filename>php4/main/fopen_wrappers.c</filename> dosyasını
kullanan t�m fonksiyonlar
</entry>
<entry>??</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</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:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->