Czy check_plain () wystarcza do ponownego wyświetlenia tekstu wprowadzonego przez użytkowników w przeglądarce, czy powinienem nadal filtrować za pomocą filter_xss () ?
Czy check_plain () wystarcza do ponownego wyświetlenia tekstu wprowadzonego przez użytkowników w przeglądarce, czy powinienem nadal filtrować za pomocą filter_xss () ?
Odpowiedzi:
Wyobrażam sobie, że pytanie dotyczy użycia check_plain(filter_xss($string))lub filter_xss(check_plain($string)).
check_plain()i filter_xss()mają dwa różne, przeciwnie, cele:
check_plain() koduje znaki specjalne w postaci ciągłego tekstu, który jest następnie wyświetlany jako HTML.filter_xss()filtruje ciąg HTML, aby zapobiec lukom w zabezpieczeniach XSS. W szczególności jego celem jest:
Jeśli używasz check_plain(), ciąg przekazany do funkcji powinien być używany jako zwykły tekst; w takim przypadku filter_xss()nie jest to konieczne. Jeśli używasz filter_xss(), to ciąg znaków przekazywany do funkcji powinien mieć format HTML i check_plain()nie jest konieczny.
Jeśli pytanie dotyczy użycia check_plain()i filter_xss()na różnych częściach tego samego ciągu, to, jak wskazał Greggles w swoim komentarzu, możesz użyć (na przykład) check_plain()zawartości atrybutów tagu i filter_xss()całego tagu HTML.