Bu özel mysql sorgu sterilize nasıl?

2 Cevap php

i POST_TITLE $ _GET alınan bu SQL sorgusu var

$sql = "SELECT ID FROM posts WHERE posts.post_title = '5-design-web-colourful'";

Bu dezenfekte ve daha güvenli hale getirmek için en iyi yolu nedir?

EDIT: Ben olmayan her oturum konuğu için özel bir kategori (özel isimli) ve yazılan tüm gizlemek için çalışacak bir eklenti oluşturmak için çalışıyorum (istendiği gibi). i 'pre_get_posts' ve yönetici, bunları yazdı üyesi, diğer üye ve misafir için özel mesajları ve kategorisini göstermek için nasıl kontrol edebilmek 'posts_selection' içine kanca var.

Kategorisi olmayan exist olmalıdır. bu yüzden ön sonunda kedi arşiv sayfasında gösterilen olamaz.

Ben soru neden relatedto değil bildiklerini bir yazının ismi / unvanı sterilize sadece nasıl İASK. başka bir şey.

2 Cevap

Eğer MySQL kullanmak varsayarak, mysql_real_escape_string kullanın.

Bu doğrudan cevap vermez iken, daha iyi bir yaklaşım bağlama parametreleri kullanmaktır. Bu kategorideki tüm saldırı vektörleri sizi korur.

http://php.net/manual/en/pdo.prepared-statements.php

http://www.php.net/manual/en/pdostatement.bindparam.php

Örnek için:

$sth = $dbh->prepare("select id from $wpdb->posts where $wpdb->posts.post_title = ?");
$sth->bindParam(1, $str);
$sth->execute();

CAUTION: Bu $ wpdb güvenli olduğunu varsayar!