Check_plain () yeterli mi?


Yanıtlar:


26

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

check_plain()ve filter_xss()iki farklı ve tam tersine amacı vardır:

  • check_plain() daha sonra HTML olarak görüntülenen düz metin dizesindeki özel karakterleri 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 :)

Eğer kullanırsanız check_plain(), işleve iletilen dize düz metin olarak kullanılacak olması gerekiyordu; bu durumda filter_xss()gerekli değildir. Eğer kullanırsanız filter_xss(), o zaman işleve iletilen dize HTML olması gerekiyordu, ve check_plain()gerekli değildir.

Soru, aynı dizenin farklı bölümleri üzerinde check_plain()ve kullanmakla ilgili filter_xss()ise, yorumunda işaret ettiği gibi check_plain(), etiket özelliklerinin içeriğinde ve filter_xss()tüm HTML etiketinde (örneğin) kullanabilirsiniz .


5
filter_xss, html'nin tüm parçalarında kullanılmak içindir. Bir html özniteliğinde filter_xss kullanırsanız, düzgün bir şekilde filtrelenmez. check_plain, html özelliklerini güvenle filtrelemek için kullanılabilir. Bu işlevleri kullanma hakkında daha fazla bilgi için ayrıca drupalscout.com/knowledge-base/… ve drupalscout.com/knowledge-base/… adresine bakın .
greggles
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.