Temel MySQL / PHP Filtreleme

3 Cevap php

Ben sadece basit bir cevap istiyorum neden bu çok temel bir soru olduğunu biliyorum, şu, mysql için güvenli benim kullanıcı girişi için çeşitli yollar var lütfen.

Bu İYİ yöntemi kullanıyor

mysql_real_escape_string()

Tüm kullanıcı sunulan ürün bir mysql sorgu girecek?

Ben yukarıda kullanırsanız, ben bir PHP sayfası üzerinde göstermek için mysql onu geri döndüğümde o tarihte başka bir işlevi kullanmak gerekiyor?

3 Cevap

PHP çok iyi bir filtre Fonksiyonu vardır

http://php.net/manual/de/ref.filter.php

/*** use a callback filter to mysql_real_escape_string ***/
$answer = filter_input(INPUT_POST, "answer", FILTER_CALLBACK, array("options"=>"mysql_real_escape_string"));

/*** create an sql query ***/
$sql = "INSERT INTO quiz (answers) VALUES ('{$answer}')";

/*** echo the query ***/
echo $sql;

Hazırlanmış deyimleri kullanarak MySQL veri koymak için en iyi yoldur. Hazırlanan tablolar açıkça SQL nedir ve MySQL veri herhangi bir SQL yürütmek olmayacak şekilde veri nedir, MySQL söyler.

Sen Mysqli ile hazırlanan tablolar ile başlayabilirsiniz.

PHP sayfalarında verileri gösteren gelince, htmlspecialchars() çıkışınızı kaçmak için kullanabilirsiniz.

escape input, filter output.

  • Sen mysql_real_escape_string() kullanın veya prepared statements db girmeden gerekir.
  • Sen htmlentities() Bir sayfada görüntülenirken bir son kullanıcı tarafından oluşturulan herhangi bir veri kullanmak gerekir.

Htmlentities kullanıcının tarayıcısı ve kullanılan belirli saldırı vektörü bağlı olarak mümkün olan her cross-site scripting saldırısı işlemek olmaz unutmayın. Birçok kişi önce bir sayfada görüntüleyerek kendi verilerini temizlemek için HTML Purifier gibi bir sanitization kitaplığı kullanın.