basit bir PHP $ _GET sanitization soru

5 Cevap php

Ben her zaman yapısı ZZZZ111 ve o rekor kimliği için ilgili tüm verileri çekmek için bir MySQL sorguda kullanılan bir 7 karakter alfanumerik metin dizesi GETler rekor bir düzenleme bağlantı var.

mysql_real_escape_string() Tüm ben hijyen açısından gereken bu $_GET['id']? Ya da benim veritabanını korumak için almak için daha fazla adım vardır?

5 Cevap

mysql_real_escape_string() herhangi bir kötü karakter kaçış olacaktır. Buna ek olarak, kullanıcı gerçekten geçerli bir giriş girdiğinizden emin olmak için /^[A-Za-z]{4}\d{3}$/ gibi bir regex kullanabilirsiniz.

mysql_real_escape_string $_GET['id'] için iş yapmak gerekir. Ayrıca, PDO yoluyla hazırlanmış tablolara bir göz atın.

Ben PDO geçiş ve prepared statements önermek olsa bir SQL sorgusu için giriş güvenli hale getirmek için, mysql_real_escape_string(), yeterli olmalıdır. Bunlar, kullanımı biraz daha güzel olma eğilimindedir, ve biraz daha verimli (deyimi sadece bir kez ayrıştırılır, ve sorgu yeniden kullanılabilir).

Ancak, aynı zamanda sayfaları cross-site scripting beyaz liste dayalı alanlardan (örn.) filtreleme HTML tarafından bağışık olduğundan emin olmanız gerekir.

Kullanıcıların size verileri gösteren planlıyorsanız, herhangi bir HTML etiketleri lutfen kaldırmak istiyoruz. Belki birisi örneğin bir ziyaretçi defteri sonrası kötü niyetli bir javascript eklenir?

Bu http://php.net/manual/en/function.htmlentities.php ile yapılabilir

Or you can use a inputfilter class to allow certain tags etc. I found this one very useful http://www.phpclasses.org/browse/package/2189.html

() mysql_real_escape_string iyi bir başlangıç ​​olduğunu, ve ben hazırlanmış deyimleri kullanarak oldukça iyi bir seçim olacağını kabul ediyorum. Sizinle çalışmak için PDO kolaylaştıracak bazı DB soyutlama içine bakmak istiyorsanız Zend_Db güzel.

Ben de senin girdi RegEx validator çeşit yazmak için bir fırsat olarak alırdım. Başlamak verebilecek bir örnek regex olduğunu:

[A-Z]{4}[0-9]{3}

PHP ve regex hakkında daha fazla bilgi burada bulunabilir: http://www.regular-expressions.info/php.html