LMPX.COM |
Home | Linux | Mysql | PHP | XML | ||
|
|
|||
From: Sezer Yalcin Date: Mon Jan 14 01:43:26 2008 Subject: cvs: phpdoc-tr /security magicquotes.xml
sezer Mon Jan 14 08:43:26 2008 UTC
Added files:
/phpdoc-tr/security magicquotes.xml
Log:
TR
http://cvs.php.net/viewvc.cgi/phpdoc-tr/security/magicquotes.xml?view=markup&rev=1.1
Index: phpdoc-tr/security/magicquotes.xml
+++ phpdoc-tr/security/magicquotes.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 1.1 $ -->
<chapter xml:id="security.magicquotes" xmlns="http://docbook.org/ns/docbook">
<title>Sihirli Tırnak</title>
&warn.deprecated.removed-6-0-0;
<para>
Sihirli Tırnak özel karakterlerin önüne otomatik olarak çıkış karakteri konması ve
bu ÅŸekilde bütünlüÄŸünün korunmasıdır. Bu özellik kullanıcıdan gelen bilgiyi deÄŸiÅŸtirebilir,
veritabanı işlemlerinde de değişiklik yapabilir. Bundan dolayı bazı karışıklıklara
sebep olduÄŸu için kullanılmaması tavsiye edilir. Bu özelliÄŸi kapatıp çıkış karakterlerini
kendiniz ilgili fonksiyonları çağırarak yapabilirsiniz.
</para>
<sect1 xml:id="security.magicquotes.what">
<title>Sihirli Tırnak nedir?</title>
<para>
Açık olduÄŸunda tüm <literal>'</literal> (tek tırnak), <literal>"</literal>
(çift tırnak), <literal>\</literal> (ters taksim) and <literal>NULL</literal> (YOKLUK)
karakterierinin önüne otomatik olarak ters taksim karakteri eklenir. Bu iÅŸlem
<function>addslashes</function> fonksiyonunun yaptığı işle aynıdır.
</para>
<para>
Toplam üç adet sihirli tırnal ayarı vardır:
</para>
<itemizedlist>
<listitem>
<simpara>
<link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>
</simpara>
<simpara>
Bu ayar HTTP bilgi isteÄŸi (GET, POST, ve COOKIE bilgileri) ile ilgilidir. Çalışma zamanlı
olarak deÄŸiÅŸtirilmez, uygulamanız çalışmadan önce, yani konfigürasyon dosyasında deÄŸiÅŸtirmelisiniz.
Temel deÄŸeri <emphasis>on</emphasis> yani açıktır.
</simpara>
<simpara>
Ayrıca <function>get_magic_quotes_gpc</function> sayfasına bakınız.
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="ini.magic-quotes-runtime">magic_quotes_runtime</link>
</simpara>
<simpara>
Açık olduÄŸunda bilgi getiren çoÄŸu fonksiyonda etki eder ve özel karakterlere ters taksim
kullanılarak çıkış uygulanır. Veritabanı fonksiyonları da dahil olmak
üzere dış kaynaktan bilgi getiren fonksiyonlar bundan etkilenir.
Çalışma zamanlı olarak deÄŸiÅŸtirilebilir. Temel deÄŸeri <emphasis>off</emphasis> yani kapalıdır.
</simpara>
<simpara>
Ayrıca <function>set_magic_quotes_runtime</function> ve
<function>get_magic_quotes_runtime</function> sayfalarına bakınız.
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="ini.magic-quotes-sybase">magic_quotes_sybase</link>
</simpara>
<simpara>
Açık olduÄŸunda tek tırnak karakterine çıkış iÅŸlemi yapılırken ters taksim deÄŸil,
yine tek tırnak karakteri kullanılır. Açık olduÄŸunda <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>
ayarını da etkile ve üzerinde önem kazanır.
EÄŸer her iki ayar da açıksa, sadece tek tırnak karakterleri <literal>''</literal>
olarak ayarlanacak, çift tırnak, ters taksim ve NULL (YOKLUK) olduÄŸu gibi kalacak ve çıkış iÅŸlemi
uygulanmayacaktır.
</simpara>
<simpara>
Ayrıca <function>ini_get</function> fonksiyonuna bakıp bu ayarların deÄŸerlerini nasıl kontrol edeceÄŸinizi öÄŸrenin.
</simpara>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="security.magicquotes.why">
<title>Neden Sihirli Tırnak kullanılır?</title>
<itemizedlist>
<listitem>
<simpara>
Yeni baÅŸlayanlar için faydalı olabilir. (Yine de pek tavsiye edilmez)
</simpara>
<simpara>
Sihirli tırnak PHP'yi daha kolay kullanmak, güvenliÄŸini saÄŸlamak amacıyla
eklenmiştir. Ancak bu kullanılsa dahi <link linkend="security.database.sql-injection">SQL Enjeksiyon</link>
riski azalmış olsa dahi hala vardır.
</simpara>
</listitem>
<listitem>
<simpara>
Kolaylık
</simpara>
<simpara>
Veritabanına bilgi eklerken sihirli tırnak özelliÄŸi otomatik olarak <function>addslashes</function>
fonksiyonunu tüm $_GET, $_POST ve $_COOKIE bilgi dizilerine uygular.
</simpara>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="security.magicquotes.whynot">
<title>Neden Kullanılmamalıdır?</title>
<itemizedlist>
<listitem>
<simpara>
Uyumluluk
</simpara>
<simpara>
Bu özelliÄŸin açık veya kapalı olması tüm uygulamanızın davranışını deÄŸiÅŸtirir.
<function>get_magic_quotes_gpc</function> tüm bilgileri farklı hale getirebilir.
</simpara>
</listitem>
<listitem>
<simpara>
Başarım
</simpara>
<simpara>
Her gelen bilginin veritabanına eklenmesi veya kullanılması şart değildir. Ancak
sihirli tırnak tüm bilgiyi sanki kullanılacak gibi çıkış iÅŸlemine sokar.
Bundan dolayı sihirli tırnak yerine <function>addslashes</function> kullanarak
kontrolü elinizde tutunuz.
</simpara>
<simpara>
PHP ile gelen konfigürasyon dosyası <filename>php.ini-dist</filename> bu özelliÄŸi
açık bırakmış olabilir. Ancak tavsiye edilen dosya <filename>php.ini-recommended</filename>
bu özelliÄŸi kapalı tutar ve bu dosyayı kullanmanız tavsiye edilir. Ayrıca varolan konfigürasyon
dosyanızı da deÄŸiÅŸtirip bu özelliÄŸi kapatabilirsiniz.
</simpara>
</listitem>
<listitem>
<simpara>
Uygunsuzluk
</simpara>
<simpara>
Her bilginin çıkış iÅŸlemine tabi tutulması gerekli deÄŸildir. Bundan dolayı bazen
gereksiz bilgiler de deÄŸiÅŸir ve zarar görür. ÖrneÄŸin yazı göndermeye yarayan bir
formda birçok tırnak ve çift tırnak görülebilir. Ancak bu bilgiler e-posta ile
gönderilecekse deÄŸiÅŸikliÄŸe ve çıkış iÅŸlemine hiç gerek yoktur. Bu durumda
<function>stripslashes</function> fonksiyonunu kullanıp ters çıkış iÅŸlemi yapmak
zorunda kalırsınız.
</simpara>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="security.magicquotes.disabling">
<title>Sihirli Tırnak Kapatılması</title>
<para>
Belirtilen <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>
çalışma zamanlı olarak deÄŸiÅŸtirilemez, bu sebeple konfigürasyon dosyasından deÄŸiÅŸtirilmesi gerekir.
Yani <function>ini_set</function> fonksiyonu bu ayara etki etmez.
</para>
<para>
<example>
<title>Konfigürasyondan deÄŸiÅŸtirme</title>
<para>
AÅŸağıda &php.ini; içinde <literal>Off</literal> kapatmaya yönelik bir örnek verilmiÅŸtir.
Daha fazla detay için kılavuzun <link linkend="configuration.changes">Konfigürasyon ayarlarını deÄŸiÅŸtirme</link> bölümüne bakınız.
</para>
<screen>
<![CDATA[
; Magic quotes
;
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off
; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off
; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off
]]>
</screen>
<para>
EÄŸer sunucuda konfigürasyon dosyasına eriÅŸim ve deÄŸiÅŸiklik mümkün deÄŸilse, Apache kullanıcıları için
<filename>.htaccess</filename> dosyası kullanımı mümkündür. Mesela:
</para>
<screen>
<![CDATA[
php_flag magic_quotes_gpc Off
]]>
</screen>
</example>
</para>
<para>
Her konfigürasyona uyumlu yazılım geliÅŸtirme amacıyla sunucu ayarlarının
deÄŸiÅŸmesinin mümkün olmadığı durumlar için aÅŸağıda <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>
ayarının nasıl kapalı gibi iÅŸleme konduÄŸunu gösteren bir örnek verilmiÅŸtir.
Bu yol fevkalade verimsizdir ve hantaldır ancak yazılan kodun sihirli tırnak
ayarına baÄŸlı olmaması amaçlanıyorsa kullanılabilir.
</para>
<para>
<example>
<title>Çalışma zamanlı olarak sihirli tırnak kapatma</title>
<programlisting role="php">
<![CDATA[
<?php
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
?>
]]>
</programlisting>
</example>
</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
indent-tabs-mode:nil
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
-->
| Navigate in group php.doc.tr at sever news.php.net | |
| Previous | Next |
| © No Copyright You are free to use Anything |
Site Maintained by PHP Developer
Powered By PHP Consultants |