HTML çıktısı esc_html () AND wp_kses () yoluyla mı aktarılmalıdır?


11

Farklı kullanımları hakkında kafam karıştı esc_html()ve wp_kses(). Anlıyorum esc_html()Dönüştür kendi HTML varlığı özel karakterler ve bu wp_kses()kaldırır istenmeyen etiketleri (örneğin <script>), ama emin onlar birlikte veya ayrı kullanılması gerektiğini bağlamda da değilim.

Güvenilmeyen bir HTML çalıştırırsam esc_html(), herhangi bir JavaScript tarayıcı tarafından görüntülenmek yerine düz metin olarak görüntülenir, bu nedenle bu noktada güvenlidir, doğru mu? Ayrıca çalıştırmak için tek nedeni wp_kses()ham komut dosyası görüntülenmesini önlemek olurdu?

Temel olarak, esc_html()güvenli wp_kses()hale getirir ve güzelleştirir. Bu doğru mu?

Yanıtlar:


16

Genel kural, en azından Mark Jaquith tarafından benimsenen olduğu çıkışına kaçış, girişinde mikroptan arindirilir (bu kural olmasının doğal sonucu geç kaçış, erken sterilize ).

Bu nedenle: veritabanında güvenilmeyen verileri depolarken dezenfeksiyon filtrelerini ( kses()aile gibi ) kullanın ve şablonda güvenilmeyen verileri çıktılarken kaçan filtreleri (örneğin aile) kullanın .esc_*()


14

Sonuçta html'nin bazı alt kümelerinin bulunmasına izin vermek istediğinizde kses işlevleri kullanılmalıdır. Örneğin, yorumlar içlerinde bazı HTML, kalın, italik, bağlantılar vb. İçin izin verir.

Html'den tamamen çıkmak için esc_html işlevi kullanılmalıdır. Hiçbir HTML, bir tarayıcı tarafından HTML olmayan olarak yorumlanacak bir şeye dönüştürülmeden geçemez.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.