Là check_plain () đủ để tái hiển thị văn bản nhập vào bởi người sử dụng trong trình duyệt, hay tôi nên vẫn còn bộ lọc với filter_xss () ?
Là check_plain () đủ để tái hiển thị văn bản nhập vào bởi người sử dụng trong trình duyệt, hay tôi nên vẫn còn bộ lọc với filter_xss () ?
Câu trả lời:
Tôi tưởng tượng câu hỏi là về việc sử dụng check_plain(filter_xss($string)), hoặc filter_xss(check_plain($string)).
check_plain()và filter_xss()có hai mục đích khác nhau và ngược lại:
check_plain() mã hóa các ký tự đặc biệt trong một chuỗi văn bản đơn giản sau đó được hiển thị dưới dạng HTML.filter_xss()lọc một chuỗi HTML để ngăn các lỗ hổng cross-site-scripting (XSS). Cụ thể mục đích của nó là:
Nếu bạn sử dụng check_plain(), chuỗi được truyền cho hàm được coi là được sử dụng dưới dạng văn bản thuần túy; trong trường hợp như vậy, filter_xss()là không cần thiết. Nếu bạn sử dụng filter_xss(), thì chuỗi được truyền cho hàm được coi là HTML và check_plain()không cần thiết.
Nếu câu hỏi là về việc sử dụng check_plain()và filter_xss()trên các phần khác nhau của cùng một chuỗi thì, như các greggles đã chỉ ra trong nhận xét của anh ấy, bạn có thể sử dụng (ví dụ) check_plain()trên nội dung của các thuộc tính thẻ và filter_xss()trên toàn bộ thẻ HTML.