POST / form / URL'den değişkenleri GET sterilize etmek için en iyi yolu?

2 Cevap php

Possible Duplicate:
Best way to stop SQL Injection in PHP

Ben bir MySQL veritabanı kullanan ve URL'den formları ve değişkenleri kolları PHP kullanarak bir web sitesi oluşturma. Değişkenler dinamik SQL sorgu dizeleri oluşturmak için kullandığınız ediliyor. Yani ben kimsenin, vb bir SQL enjeksiyon çalışıyor yapmak için sağlam bir çözüm gerekir. Bir arkadaşım gerçekten ben sadece veritabanına erişmek için saklı yordamları kullanın gerektiğini söyledi ama konak ben doesn kullanıyorum çünkü bu gerçekten mümkün değil 't Bu izin verir.

İşte (bu DB komutları kaydırmak için bir sınıfın parçası) kullanıyorum kodu:

...
public function Sanitize($Variable)
{
    if(is_resource($this->ServerConnection))
    {
        $Variable = str_replace(";", "", $Variable);
        if(get_magic_quotes_gpc())
        {
            if(ini_get('magic_quotes_sybase'))
            {
                $Variable = str_replace("''", "'", $Variable);
            }
            else
            {
                $Variable = stripslashes($Variable);
            }
        }
        return mysql_real_escape_string($Variable, $this->ServerConnection);
    }
    else
    {
        $this->PrintError("The Sanitize function is not available as there is no server connection.");
    }
}
...

Bu fonksiyon yeterince sağlam mı? I başka bir şey yapıyor olmalı?

2 Cevap

Okumaya değer olabilir this post.

Ne en iyi yolu ...

Hiç iyi bir yol yoktur. Bu bağlamda bağlıdır.

.. POST / değişkenleri GET sanitasyon ..

Bu veriler iyi ya da kötü olduğunu düşünme kusurlu modu. Veri sadece bir veridir. Bu kötü niyetli ya da değil yapar kullanılan hangi bağlam bulunuyor. Eğer bir veritabanı sunucusu üzerinde onları süssüz işlerseniz Bazı kelimeler kötü olabilir. Eğer Küçüklere bunları görüntülemek Bazı kelimeler kötü. Bu bağlamda ilgili.