Ne "temizlemek" için en iyi yoldur

3 Cevap php

Senaryo:

Ben bir yazı yapmak istediğiniz bir blog var. Ben bir blog yazısı yazmak ve (onu onaylar sonra gönderme benim) o okuma ve ana sayfada görünecektir nereye sonra bir veritabanında depolar ayrı bir php sayfası gönderebilirsiniz nerede kurmak bir form var . Nasıl kolaylıkla veritabanında saklanan engelleyecektir herhangi bir tırnak ya da bir şey kaçabilir ama hala (tüm biçimlendirme bozulmadan) düzgün görüntülenmesine izin?

Teşekkürler

3 Cevap

Prepared statements PHP bu veritabanına gider gibi veri sanitasyon bakımı iyi bir iş yapmak olacaktır.

Bir MySQL veritabanında saklanır engelleyecektir tek şey kolayca mysql_real_escape_string() ile kaçtı edilebilir.

Eğer veritabanı dışarı çekin, her şey kaçtı ve bir web sayfasında görüntülemek önce içeri koymak önce olduğu gibi aynı bakacağız, önlemek için metin üzerinde htmlspecialchars() çalıştırmak isteyeceksiniz bir etkiye sahip herhangi bir kötü niyetli komut dosyası.

Eğer metin hiç bir HTML içeren istemiyorsanız İsteğe bağlı bir komut strip_tags() olacaktır.

Hazırlanan tablolar her zaman gerçekten iyi bir fikir vardır. Ancak, bir saklı yordam için veritabanı kodu hareketli düşünebilirsiniz. Bu (sizin kullandığınız veritabanı bağlı olarak, çoğu durumda ve sonuçlarını önbelleğe nasıl) güvenlik ve performans artacaktır.

Eğer saklanan prosedürleri rota ile gidiyor değilseniz, ayrıca veritabanına çağrı başına komutlar birden fazla satır devre dışı bırakmak için emin olun. Bu konfigürasyon veritabanı dosyalarında olmalıdır. Bu yapma olasılığını devre dışı bırakır:

Komut; kötü niyetli komut

Başka yollar olsa da, bu kesinlikle en güvenli.