Check_plain () có đủ không?


Câu trả lời:


26

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()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à:

    • Xóa các ký tự và cấu trúc có thể lừa trình duyệt
    • Đảm bảo tất cả các thực thể HTML được định dạng tốt
    • Đảm bảo tất cả các thẻ và thuộc tính HTML được định dạng tốt
    • Đảm bảo không có thẻ HTML nào chứa URL có giao thức không được phép (ví dụ: javascript :)

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()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.


5
filter_xss có nghĩa là được sử dụng trên toàn bộ các phần của html. Nếu bạn sử dụng filter_xss trên một thuộc tính html, nó sẽ không lọc đúng. check_plain có thể được sử dụng để lọc các thuộc tính html một cách an toàn. Xem thêm drupalscout.com/ledgeledge-base/ Mạnhdrupalscout.com/ledgeledge-base/iêu để biết thêm thông tin về cách sử dụng các chức năng này.
chào đón
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.