Tôi đang cố gắng hiểu vệ sinh dữ liệu (không phải xác thực dữ liệu) để giúp tôi viết các chủ đề an toàn cho WordPress. Tôi đã tìm kiếm trên Internet cố gắng tìm một hướng dẫn toàn diện cho các nhà phát triển chủ đề chi tiết các thực tiễn tốt nhất. Có một số tài nguyên tôi đã tìm thấy bao gồm trang codex có tiêu đề Xác thực dữ liệu, mặc dù không có tài nguyên nào hữu ích cho tôi. Trang codex liệt kê các chức năng khử trùng có sẵn, cách sử dụng và những gì họ làm, nhưng không giải thích được tại sao bạn lại sử dụng cái này hay cái khác trong trường hợp nào bạn sẽ sử dụng chức năng khử trùng cụ thể. Mục đích của bài đăng này là yêu cầu tất cả mọi người đóng góp các ví dụ về mã xấu / không được mã hóa và cách viết lại để vệ sinh đúng cách. Đây có thể là mã chung để vệ sinh tiêu đề bài đăng hoặc bài đăng srcails hoặc các mã phức tạp hơn để xử lý vệ sinh$_POST
dữ liệu cho các yêu cầu Ajax.
Ngoài ra, tôi muốn biết liệu các chức năng WordPress để thêm / cập nhật cơ sở dữ liệu (ví dụ: các chức năng được đề cập trong khối mã bên dưới) có tự động đảm nhiệm công việc vệ sinh cho bạn không? Nếu có, thì có bất kỳ trường hợp ngoại lệ nào khi bạn thực hiện các biện pháp bổ sung để vệ sinh dữ liệu được gửi đến các chức năng WordPress này không?
add_user_meta
update_user_meta
add_post_meta
update_post_meta
//just to name a few
Ngoài ra, việc khử trùng có cần phải được thực hiện khác đi khi lặp lại HTML trong PHP so với PHP nội tuyến của HTML không? Để rõ hơn về những gì tôi đang hỏi, đây là đoạn mã:
<?php echo '<div class="some-div ' . $another_class . '" data-id="' . $id . '" >' . $text . '</div>'; ?>
<div class="some-div <?php echo $another_class; ?>" data-id="<?php echo $id; ?>"><?php echo $text; ?></div>
Cả hai tuyên bố trên đều đạt được điều tương tự. Nhưng họ có cần phải được phân loại khác nhau không?