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&apos;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