Khi nào nên sử dụng esc_html và khi nào nên sử dụng sanitize bản_field?


10

Có vẻ như họ làm gần như cùng một loại công việc. Vì thế...

Khi nào tôi nên sử dụng esc_html()thay vì sanitize_text_field()?

Câu trả lời:


19

esc_html() ít nhiều mất mát - nó chỉ biến đánh dấu HTML thành văn bản hiển thị được mã hóa, do đó nó không được hiển thị dưới dạng đánh dấu bởi trình duyệt.

Về mặt ngữ nghĩa, nó thoát , vì vậy nó có nghĩa là được sử dụng để làm cho đầu ra đến trang an toàn.

sanitize_text_field()tuy nhiên thực sự loại bỏ tất cả đánh dấu HTML, cũng như khoảng trắng thêm. Nó không để lại gì ngoài văn bản đơn giản.

Về mặt ngữ nghĩa, nó được khử trùng , vì vậy nó có nghĩa là được sử dụng để làm cho đầu vào được lưu an toàn.


sử dụng esc_html cho cả đầu ra và tiết kiệm có tốt hơn không? Dù sao tôi cũng sẽ không hiển thị bất kỳ đánh dấu nào .. vậy khi nào tôi sẽ sử dụng sanitize bản_field ()?
yeahman

1
@yeahman "tốt hơn" thế nào? Họ đang làm những điều khác biệt rõ ràng. Loại bỏ đánh dấu thường được sử dụng cho những thứ mà việc đánh dấu không được mong đợi, ví dụ như mẫu có tên.
Rarst

Ý tôi là nó lưu trữ những gì người dùng nhìn thấy và có đầu vào ... như bạn đã nói nó không mất dữ liệu .. (ví dụ: anh ta nhập "thẻ <head> là nơi bạn nên bao gồm các tệp css của mình", anh ta hy vọng sẽ thấy <head> trong bài của mình). Đối với một trường tên, tôi sẽ kiểm soát đầu vào thông qua xác nhận; nó không phù hợp hơn sao?
yeahman

Tôi quan tâm đến sự khác biệt giữa sanitize_text_field()strip_tags
myol

Strip_tags được sử dụng trong sanitize
bản_field
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.