Hướng dẫn dùng sanitize input trong PHP

Việc bảo mật phù hợp là rất quan trọng để giữ cho website hoặc theme hoặc plugin người dùng được an toàn. Một phần của việc đó có nghĩa là xác nhận và chuẩn hóa dữ liệu phù hợp. Trong bài viết này, chúng ta sẽ xem lý do tại sao việc này lại quan trọng, những gì cần phải làm và WordPress đề xuất những hàm trợ giúp nào.

Nội dung chính

  • Vì sao sanitization quan trọng?
  • Quy tắc số 1: Không tin ai
  • Quy tắc số 2: Validate dữ liệu vào, escape dữ liệu xuất ra
  • Quy tắc số 3: Tin tưởng WordPress
  • Xác nhận dữ liệu
  • Filename[tên file]
  • Dữ liệu từ các text field
  • Sanitization cho dữ liệu
  • Quy tắc số 4: Việc giữ cho dữ liệu an toàn chủ yếu là về tính huống
  • Escape HTML
  • Escape các thuộc tính
  • Tên các Class HTML
  • Escape các URL
  • Escape JavaScript
  • Escape Textarea
  • Antispambot
  • Các chuỗi truy vấn
  • Validation & Sanitization
  • Escape cơ sở dữ liệu
  • Chèn và cập nhật dữ liệu
  • Các câu lệnh LIKE

Nội dung chính

  • Vì sao sanitization quan trọng?
  • Quy tắc số 1: Không tin ai
  • Quy tắc số 2: Validate dữ liệu vào, escape dữ liệu xuất ra
  • Quy tắc số 3: Tin tưởng WordPress
  • Xác nhận dữ liệu
  • Filename[tên file]
  • Dữ liệu từ các text field
  • Sanitization cho dữ liệu
  • Quy tắc số 4: Việc giữ cho dữ liệu an toàn chủ yếu là về tính huống
  • Escape HTML
  • Escape các thuộc tính
  • Tên các Class HTML
  • Escape các URL
  • Escape JavaScript
  • Escape Textarea
  • Antispambot
  • Các chuỗi truy vấn
  • Validation & Sanitization
  • Escape cơ sở dữ liệu
  • Chèn và cập nhật dữ liệu
  • Các câu lệnh LIKE

Nội dung chính

  • Vì sao sanitization quan trọng?
  • Quy tắc số 1: Không tin ai
  • Quy tắc số 2: Validate dữ liệu vào, escape dữ liệu xuất ra
  • Quy tắc số 3: Tin tưởng WordPress
  • Xác nhận dữ liệu
  • Filename[tên file]
  • Dữ liệu từ các text field
  • Sanitization cho dữ liệu
  • Quy tắc số 4: Việc giữ cho dữ liệu an toàn chủ yếu là về tính huống
  • Escape HTML
  • Escape các thuộc tính
  • Tên các Class HTML
  • Escape các URL
  • Escape JavaScript
  • Escape Textarea
  • Antispambot
  • Các chuỗi truy vấn
  • Validation & Sanitization
  • Escape cơ sở dữ liệu
  • Chèn và cập nhật dữ liệu
  • Các câu lệnh LIKE

Vì dường như có nhiều cách hiểu khác nhau về ý nghĩa của các thuật ngữ 'validation'[xác nhận], 'escaping' và 'sanitization', trước tiên tôi sẽ làm rõ ý của tôi trong bài viết này:

  • Validation [xác nhận] - Đây là những kiểm tra được chạy để đảm bảo dữ liệu bạn có là phù hợp. Chẳng hạn, email là email, date là date và number[hoặc được chuyển đổi] một là integer[số nguyên].
  • Sanitization / Escaping - Đây là các filter [bộ lọc] được áp dụng cho dữ liệu để làm cho dữ liệu 'an toàn' trong tình huống cụ thể. Chẳng hạn, để hiển thị code HTML trong textarea, cần phải thay thế tất cả các thẻ HTML bằng các thực thể tương đương với chúng

Vì sao sanitization quan trọng?

Khi dữ liệu được xem xét trong một số tình huống[giả sử trong tài liệu HTML] - dữ liệu đó có thể bị hiểu sai là code cho môi trường đó[ví dụ code HTML]. Nếu dữ liệu đó chứa code độc hại, sau đó sử dụng dữ liệu đó mà không sanitization nó, có nghĩa là code đó sẽ được thực thi. Code thậm chí không nhất thiết phải có hại để gây ra các hiệu ứng không mong muốn. Công việc sanitization là đảm bảo rằng bất kỳ code nào trong dữ liệu không được thông dịch thành code - nếu không, bạn có thể nhận kết quả như trường học của Bobby Tables.

Một ví dụ có vẻ vô hại là một trường tìm kiếm có sẵn với cụm từ được tìm kiếm, sử dụng unescaped $_GET['s']:

Chủ Đề