web-gelistirme-sc.com

Check_plain () yeterli mi?

check_plain () tarayıcıda kullanıcılar tarafından girilen metni yeniden görüntülemek için yeterli mi, yoksa yine de filter_xss () ile filtrelemeliyim?

16
Citricguy

Sorunun check_plain(filter_xss($string)) veya filter_xss(check_plain($string)) kullanmakla ilgili olduğunu düşünüyorum.

check_plain() ve filter_xss() 'in iki farklı amacı vardır ve aksine:

  • check_plain(), düz metin dizesindeki özel karakterleri daha sonra HTML olarak görüntülenecek şekilde kodlar.
  • filter_xss() siteler arası komut dosyası oluşturma (XSS) güvenlik açıklarını önlemek için bir HTML dizesini filtreler. Özellikle amacı:

    • Tarayıcıları kandırabilecek karakterleri ve yapıları kaldırma
    • Tüm HTML öğelerinin iyi biçimlendirildiğinden emin olma
    • Tüm HTML etiketlerinin ve özelliklerinin iyi biçimlendirildiğinden emin olma
    • Hiçbir HTML etiketinin izin verilmeyen bir protokole sahip URL içermediğinden emin olun (örn. Javascript :)

check_plain() kullanırsanız, işleve iletilen dize düz metin olarak kullanılır; bu durumda, filter_xss() gerekli değildir. filter_xss() kullanırsanız, işleve iletilen dizenin HTML olması gerekir ve check_plain() gerekli değildir.

Soru aynı dizenin farklı bölümlerinde check_plain() ve filter_xss() kullanmakla ilgiliyse, yorumunda işaret ettiği gibi greggles'ın (örneğin) check_plain() etiket özelliklerinin içeriği ve tüm HTML etiketinde filter_xss().

26
kiamlaluno