Not: Ben bu soruya baktım: http://stackoverflow.com/questions/1238763/preventing-sql-injection-without-prepared-statements-jdbc. Ben biraz Ve beklendiği gibi ... cevap hazır deyimleri kullanmaktır. Ben koşullar farklı bir sette ben ... ben bunun için en iyi yolu bilmek istiyorum.
Ben yazar kendi basit bir SQL katmanı (: o PostgreSQL ve MySQL destekliyorsa haber) yazdı indirilmiş bir script (phpsimplechat) kullanıyorum. Ne yazık ki, bunun üzerine bazı testler koştu ettik ve SQL Enjeksiyon açıktır. Komut bir özellik açısından sadece istediğiniz şeyi yapar, bu yüzden onu kurtarmaya istiyorum.
Neyse ki, bu açık kaynak ... ama doğrusu phpsimplechat hazırlanmış deyimleri kullanmak için SQL sorguları yeniden yazmak istemem. 3. parti kütüphane yerine PDO kendi SQL katmanı kullanır ... ve o eski mysql modülü kullanan altında (dolayısıyla, ben mysql değişti bile hazır deyimleri kullanamaz -> mysqli, ben DBQuery "ile uğraşmak zorunda. "tabaka diye) onun tüm kod üstüne koydu. Cevaplar MySQL özgü olabilir bu yüzden ben, PostgreSQL kodu gerek yok.
Ben addslashes Tüm SQL Injection girişimlerine karşı korumak için yetersiz olduğunu okudum. Kullanmak güvenli mysql_real_escape_string mı?