Ben tek bir merkezi yerde kullanıcı girişi tüm kullanım ve sanitasyon taşımak istiyoruz
Evet, bu ne kadar güzel olurdu. Bu yapılamaz. Bu metin işleme nasıl çalıştığını değil.
Eğer başka içine bir bağlamda metin ekleme iseniz doğru kaçar kullanmanız gerekir. (MySQL dize hazır mysql_real_escape_string, belirli bağlamlar için URL parametreleri, diğerleri için HTML içeriği, urlencode için htmlspecialchars). Eğer filtreleme konum senaryonuzun başında, giriş sonuna kadar nereye gittiğini bilmiyorum, o yüzden kaçmak için nasıl bilmiyorum.
Belki bir giriş dizesi veritabanına hem gidiyor (SQL-kaçtı olması gerekir) doğrudan (HTML öncelemeli olması gerekiyor) sayfa üzerine. Bu durumlarda her ikisini de kapsar kimse kaçış yok. İkiniz de birbiri ardına kaçar kullanabilirsiniz, ama sonra HTML değeri garip tersbölüler ona görünen ve veritabanı kopyalama işaretlerinden dolu olacak olacaktır. Birkaç Bu misencoding turlarını ve size bir şey düzenlemek her zaman, \\\\\\\\\\\\\\\\\\\\
ve uzun dizeleri &
çıkıp bu durumu olsun.
Eğer güvenli bir başlangıç saatinde tek seferde filtre tek yolu tamamen any Onları içeri kullanarak gidiyoruz bağlamlarda kaçan gereken tüm karakterleri kaldırarak 'Ancak hiçbir kesme anlamına gelir veya HTML, veritabanındaki herhangi bir 'işareti veya daha az-thans ve muhtemelen diğer URL düşmanca noktalama bütün bir yük tersbölüler de gitmek zorunda. Rasgele metin almaz basit bir site için, belki o uzak alabilir. Ama genelde değil.
Metnin bir tür başka bir gider Yani sadece sinek kaçabilir. Sorunu önlemek için en iyi strateji ile olduğu kadar yerine SQL dizesi binanın Parametrelenmiş sorguları kullanarak, örneğin, muhtemelen olabildiğince çok ve ya bir echo(htmlspecialchars())
fonksiyonunu tanımlayan diğer bağlamlarda içine birleştirerek metin önlemek için daha az yazmaya çalışmak, ya da varsayılan bir alternatif çiftleşmiş sistemi HTML-kaçar kullanarak yapmak için güzel kısa adı.