Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  PHP'de GET, POST veya COOKIE ile gönderilen bilgilerin içindeki tek tırnak karakterini otomatik olarak ters bölü tek tırnak yapan hokus pokus olayı. Yani ' karakteri \' oluyor.

Bunun yapılmasının nedeni şu: GET ve POST ile gelen data eğer SQL oluşturmak için kullanılırsa o SQL acemi programcıların elinde injection'a açık hale geliyor. PHP Hypertext Preprocessor, aynı devlet babanın vatandaşını youtube gibi muzır neşriyattan koruduğu gibi, programcısını SQL injection'dan falan korumaya çalışıyor. Devlet gibi programlama dili mübarek.

Neyse, bu hokus pokus php.ini'den ayarlanıyor. magic_quotes=on gibi bir satırla. Bir kere ayarlandımı da runtimeda değiştirilemiyor. E biz server sahibi değiliz ki, nasıl değiştirecez php.ini'yi? Sitenin kök dizinine kendi php.ini'nizi koyabiliyorsunuz ama ben denedim "internal server error" dedi.

Önceki serverda magic_quotes=Off idi. Ona göre kod yazmışız. Yeni serverda on. php.ini'yi değiştiremiyoruz, runtime'da da değiştirilemiyor. E nabıcaz? Şöyle bişey yaptım, oldu:

if(get_magic_quotes_gpc()){
    function stripslashes_all($arr){
        while (list($key, $value) = each($arr)) {
            if(is_array($value))
                $arr[$key] = stripslashes_all($value);
            else
                $arr[$key] = stripslashes($value);
        }
        return $arr;
    }
    $_POST = stripslashes_all($_POST);
    $_GET = stripslashes_all($_GET);
    $_COOKIE = stripslashes_all($_COOKIE);
}

Bu kod bütün sayfaların include ettiği bir dosyada duruyor. Hatta her requestte ilk çalışan kod. Yaptığı şey eklenen slash'ları stripslashes ile uçurmak. Tabi bunu rekürsif olarak yapıyor.
fizikci
23 Mayıs 2008 16:55
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.
© 2005, Bilişim Kulübü. (1062 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen