Vệ sinh dữ liệu bài đăng PHP

Tiện ích mở rộng bộ lọc PHP có nhiều chức năng cần thiết để kiểm tra đầu vào của người dùng và được thiết kế để giúp xác thực dữ liệu dễ dàng và nhanh hơn

Hàm filter_list[] có thể được sử dụng để liệt kê những gì tiện ích mở rộng bộ lọc PHP cung cấp

Thí dụ


 
   
   
 
foreach [filter_list[] dưới dạng $id =>$filter] {
tiếng vang '';
}
?>

Tên bộ lọcID bộ lọc'. bộ lọc $. ''. filter_id[$filter]. '

Tự mình thử »

Tại sao sử dụng bộ lọc?

Nhiều ứng dụng web nhận đầu vào bên ngoài. Đầu vào/dữ liệu bên ngoài có thể được

  • Người dùng nhập từ một biểu mẫu
  • Bánh quy
  • Dữ liệu dịch vụ web
  • Biến máy chủ
  • Kết quả truy vấn cơ sở dữ liệu

Bạn phải luôn xác thực dữ liệu bên ngoài
Dữ liệu đã gửi không hợp lệ có thể dẫn đến sự cố bảo mật và phá vỡ trang web của bạn
Bằng cách sử dụng các bộ lọc PHP, bạn có thể chắc chắn rằng ứng dụng của mình nhận được thông tin đầu vào chính xác

PHP hàm filter_var[]

Hàm filter_var[] vừa xác thực vừa làm sạch dữ liệu

Hàm filter_var[] lọc một biến duy nhất với bộ lọc được chỉ định. Phải mất hai phần dữ liệu

  • Biến bạn muốn kiểm tra
  • Loại séc sử dụng

Vệ sinh chuỗi

Ví dụ sau sử dụng hàm filter_var[] để xóa tất cả các thẻ HTML khỏi một chuỗi

Thí dụ

$str = "

Chào thế giới. “;
$newstr = filter_var[$str, FILTER_SANITIZE_STRING];
tiếng vang $newstr;
?>Tự mình thử »

Xác thực một số nguyên

Ví dụ sau sử dụng hàm filter_var[] để kiểm tra xem biến $int có phải là số nguyên không. Nếu $int là một số nguyên, đầu ra của mã bên dưới sẽ là. "Số nguyên hợp lệ". Nếu $int không phải là số nguyên, đầu ra sẽ là. "Số nguyên không hợp lệ"

Thí dụ

$int = 100;

nếu [. filter_var[$int, FILTER_VALIDATE_INT] === false] {
echo["Số nguyên hợp lệ"];
} khác {
echo["Số nguyên không hợp lệ"];
}
?>

Tự mình thử »

Mẹo. filter_var[] và Sự cố với 0

Trong ví dụ trên, nếu $int được đặt thành 0, hàm trên sẽ trả về "Số nguyên không hợp lệ". Để giải quyết vấn đề này, hãy sử dụng mã bên dưới

Thí dụ

$int = 0;

nếu [filter_var[$int, FILTER_VALIDATE_INT] === 0. . filter_var[$int, FILTER_VALIDATE_INT] === false] {
echo["Số nguyên hợp lệ"];
} khác {
echo["Số nguyên không hợp lệ"];
}
?>

Tự mình thử »

Xác thực địa chỉ IP

Ví dụ sau sử dụng hàm filter_var[] để kiểm tra xem biến $ip có phải là địa chỉ IP hợp lệ không

Thí dụ

$ip = "127. 0. 0. 1";

nếu [. filter_var[$ip, FILTER_VALIDATE_IP] === sai] {
echo["$ip là địa chỉ IP hợp lệ"];
} khác {
echo["$ip không phải là địa chỉ IP hợp lệ"];
}
?>

Tự mình thử »

Vệ sinh và xác thực địa chỉ email

Ví dụ sau sử dụng hàm filter_var[] để xóa tất cả các ký tự không hợp lệ khỏi biến $email trước, sau đó kiểm tra xem đó có phải là địa chỉ email hợp lệ không

Thí dụ

$email = "john. doe@ví dụ. com";

// Xóa tất cả các ký tự không hợp lệ khỏi email
$email = filter_var[$email, FILTER_SANITIZE_EMAIL];

// Xác thực thư điện tử
nếu [. filter_var[$email, FILTER_VALIDATE_EMAIL] === false] {
echo["$email là địa chỉ email hợp lệ"];
} khác {
echo["$email không phải là địa chỉ email hợp lệ"];
}
?>

Tự mình thử »

Vệ sinh và xác thực một URL

Ví dụ sau đây sử dụng hàm filter_var[] để xóa tất cả các ký tự không hợp lệ khỏi một URL, sau đó kiểm tra xem $url có phải là một URL hợp lệ không

Thí dụ

$url = "https. //www. w3schools. com";

// Xóa tất cả các ký tự không hợp lệ khỏi một url
$url = filter_var[$url, FILTER_SANITIZE_URL];

// Xác thực url
nếu [. filter_var[$url, FILTER_VALIDATE_URL] === false] {
echo["$url là URL hợp lệ"];
} khác {
echo["$url không phải là URL hợp lệ"];
}
?>

Tự mình thử »

Toàn bộ tài liệu tham khảo bộ lọc PHP

Để có tham khảo đầy đủ về tất cả các hàm bộ lọc, hãy truy cập Tài liệu tham khảo bộ lọc PHP hoàn chỉnh của chúng tôi. Kiểm tra từng bộ lọc để xem những tùy chọn và cờ nào khả dụng

Tôi càng bắt đầu cố gắng sử dụng các tiêu chuẩn mã hóa PSR-2 và các công cụ như GrumPHP [và những công cụ liên quan đến nó], tôi càng thấy rằng chất lượng mã tôi viết có thể được cải thiện đáng kể theo những cách nhỏ

Và tôi không có ý nói mâu thuẫn. Ý tôi là, ý tưởng có một thứ gì đó được cải thiện “đáng kể” theo một cách “nhỏ nhặt” không thực sự vui nhộn, phải không?

Nhưng hãy nghe tôi nói

Hãy tưởng tượng rằng bạn có thể viết mã rõ ràng, dễ đọc, có thể bảo trì bằng cách sử dụng các tiêu chuẩn mã hóa không chỉ hiện đại mà còn được tích hợp vào PHP, hoạt động độc đáo với WordPress và điều đó dễ đọc hơn một số cách khác mà chúng tôi có thể đã thực hiện trong

Bạn sẽ không quan tâm chứ?

Vệ sinh dữ liệu bài viết

Lấy ví dụ, ý tưởng về sự cần thiết phải vệ sinh dữ liệu bài đăng trong WordPress. Nghĩa là, thông tin được gửi đến máy chủ thông qua yêu cầu POST, được chứa trong $_POST superglobal và phải được làm sạch trước khi thực hiện bất kỳ công việc nào trên đó

Chắc chắn rồi, WordPress cung cấp một vài hàm trợ giúp cho việc này – và chúng rất hữu ích – nhưng PHP cũng cung cấp một số

Tôi sẽ cung cấp đầy đủ thông tin chính bên dưới trong một chức năng mà bạn có thể sử dụng lại trong mã của mình. Nhưng trước tiên, lưu ý rằng tôi sẽ hung hăng. Bạn có thể không cần mọi thứ mà tôi sắp trình bày

Nghĩa là đoạn mã bạn sắp xem sẽ thực hiện như sau

  • truy xuất một biến cho siêu toàn cầu $_POST,
  • kiểm tra mã hóa không hợp lệ,
  • mã hóa các thực thể khác nhau, loại bỏ tất cả các thẻ, xóa ngắt dòng, tab, khoảng trắng, v.v.
  • trích dẫn một chuỗi được trích dẫn,
  • xóa các thẻ HTML và thẻ PHP khỏi một chuỗi

Như tôi đã nói, không phải tất cả những điều này đều có thể cần thiết và có nhiều cách khác để xử lý một số điều này tùy thuộc vào cách bạn muốn quản lý dữ liệu của mình [ví dụ: xem wp_kses]

Tuy nhiên, đôi khi bạn có thể có một trang cài đặt mà bạn muốn quản lý trước khi ghi dữ liệu vào cơ sở dữ liệu một cách mạnh mẽ.

Xem mã trên Gist

, hàm này được sử dụng bằng cách chuyển thông tin tìm thấy trong siêu toàn cục $_POST. Sau đó, nó được làm sạch mạnh mẽ bằng cách sử dụng chiến lược ở trên và trở về trạng thái được vệ sinh sạch sẽ nhất có thể.

Như tôi đã nói, điều này có thể được sửa đổi để phù hợp với bất kỳ mục đích sử dụng nào bạn cần, nhưng nếu bạn đang tìm kiếm một trong những cách dễ nhất và tích cực nhất để làm sạch đầu vào từ người dùng, thì chức năng này có thể hữu ích trong nỗ lực của bạn

Làm cách nào để dọn dẹp bài đăng trong PHP?

Sử dụng bộ lọc PHP để kiểm tra và xác thực dữ liệu . Sử dụng filter_var[] với cờ bộ lọc được chỉ định để khử trùng và xác thực đầu vào. Các loại dữ liệu được hỗ trợ bao gồm. E-mail.

Làm cách nào để vệ sinh dữ liệu trong PHP?

Làm sạch dữ liệu = Xóa mọi ký tự không hợp lệ khỏi dữ liệu. .
Phần mở rộng bộ lọc PHP. Các bộ lọc PHP được sử dụng để xác thực và làm sạch đầu vào bên ngoài. .
Tại sao sử dụng bộ lọc?.
PHP hàm filter_var[]. .
Vệ sinh chuỗi. .
Xác thực một số nguyên. .
Xác thực địa chỉ IP. .
Vệ sinh và xác thực địa chỉ email. .
Vệ sinh và xác thực một URL

Làm cách nào để khử trùng đầu vào trong PHP?

Các phương pháp làm sạch đầu vào của người dùng bằng PHP. .
Sử dụng các phiên bản hiện đại của MySQL và PHP
Đặt bộ ký tự một cách rõ ràng. $mysqli->set_charset["utf8"]; .
Sử dụng bộ ký tự an toàn. .
Sử dụng chức năng không gian. .
Kiểm tra biến chứa những gì bạn đang mong đợi

Ý nghĩa của việc vệ sinh dữ liệu trong PHP là gì?

Làm sạch dữ liệu có nghĩa là xóa mọi ký tự không hợp lệ khỏi dữ liệu . Vệ sinh đầu vào của người dùng là một trong những nhiệm vụ phổ biến nhất trong ứng dụng web. Để thực hiện nhiệm vụ này dễ dàng hơn, PHP cung cấp tiện ích mở rộng bộ lọc riêng mà bạn có thể sử dụng để làm sạch dữ liệu như địa chỉ e-mail, URL, địa chỉ IP, v.v.

Chủ Đề