Wp_insert_posts () ne kadar güvenli / dezenfekte edilmiştir?


13

Wp_insert_post () için Codex'a bakıldığında, bu fonksiyonun "... değişkenleri temizlediğini , bazı kontroller yaptığını, tarih / saat gibi eksik değişkenleri doldurduğunu" belirtti (EDIT: Codex girişini daha sağlam bir örnek içerecek şekilde güncelledim güvenlik yanı sıra meta ve kategori ataması da dahil)

Sadece XSS hack'lerini ve benzerlerini önlemek için daha fazla dezenfektasyon yapmam gerekip gerekmediğini ya da işlev yoluyla yeterli olup olmadığını merak ediyorum.

Dürüst olmak gerekirse, çekirdek fonksiyonunu kontrol ettim ve örneğin herhangi bir wp_kses () veya post_content üzerinde başka bir sanitizasyon bulamadım, bu yüzden biraz endişeliyim. Yaptığı tek şey veri stripslashes_deep () olduğunu.

Yani wp_insert_post () argümanlarımı inşa ederken wp_kses () veya başka bir şey çalıştırıyor musunuz?

Buradaki en iyi uygulama nedir? Kodeks, örneğinde güvenlik konusunda oldukça kısırdır.

Teşekkürler


2
Sadece SQL enjeksiyonunu önler. İçerik üzerinde kses çalıştırmak istiyorsanız, bunu kendiniz yapmanız gerekir. WP hangi HTML kodunu çıkaracağınızı tahmin edemez. Gönderi bir yönetici tarafından gönderilirse ve içine bir sayfa eklemek isterse ne <script>olur?
onetrickpony

Tamam, bilmek güzel. wp_kses_post () her şeye ve wp_kses_title () başlığına!
Tom Auger

Kod doğrulama, veri doğrulama ve wp_insert_posts () örneğini gösterecek şekilde güncellendi.
Tom Auger

Yanıtlar:


11

Hiçbir şey yapmanıza gerek yok.

WP yükünde:

'init' hook -> kses_init() -> kses_init_filters()

Sonra:

wp_insert_post() -> sanitize_post() -> sanitize_post_field() -> 'content_save_pre' -> wp_filter_post_kses()

Benzer şekilde yazı başlıkları, yorum metni vb.

Sonuç: wp_insert_post () çok sterilize edilmiştir. :)


Bu düzeltme için teşekkürler Scribu - kesinlikle daha iyi bir yol! Keşke tüm kod snippet'ini hurdaya çıkarmamış olsanız da, ana örneğin kapsamadığı wp_insert_post () kullanmanın diğer yönlerinin iyi bir örneğiydi.
Tom Auger

Evet, bu konuda da kendimi kötü hissettim. Ancak, wp_insert_post () kapsamı dışındaydı. Ayrı, yukarıdan aşağıya bir öğretici daha iyi olurdu diye düşünüyorum.
scribu

Cevap ve kodeks de güncellendi.
scribu

lol @ son düzenleme. bazen zaten çekirdek içine gömülü tüm altın bulmak için biraz kazma alır :) Ben geri izlerken iplik kaybetti. Görünüţe göre benden daha iyi bir hafýzasýn! Buna sadık kaldığınız ve kodeksi güncellediğiniz için teşekkür ederiz.
Tom Auger
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.