Vệ sinh đầu vào trong PHP là gì?

Trong hướng dẫn này, chúng tôi sẽ làm sạch đầu vào trong PHP trước khi lưu nó vào cơ sở dữ liệu của chúng tôi. Đây là một trong những điều quan trọng nhất cần làm khi lưu hồ sơ trực tuyến vì chúng tôi không biết khách truy cập nghĩ gì và có thể một số người trong số họ cung cấp dữ liệu độc hại cho ứng dụng của chúng tôi. Để biết thêm thông tin, vui lòng truy cập bộ lọc vệ sinh tại trang web chính thức của PHP

 

Vì vậy, trong các hướng dẫn trước của tôi, tôi đã thêm một chức năng sẽ làm sạch đầu vào trước khi lưu nó vào cơ sở dữ liệu của chúng ta. Vui lòng xem mã mẫu bên dưới

function sanitize($input) 
{
	if(is_array($input)):
		foreach($input as $key=>$value):
			$result[$key] = sanitize($value);
		endforeach;
	else:
		$result = htmlentities($input, ENT_QUOTES, 'UTF-8');
	endif;

	return $result;
}

 

Như bạn có thể thấy từ đoạn mã trên, tôi tạo hàm sanitize() bên trong các hàm. tập tin php. Và tôi có một tham số gọi là biến đầu vào $. Sau đó, tôi kiểm tra xem biến $input có phải là một mảng không nếu có thì tôi lặp lại giá trị biến $input sau đó gọi lại hàm với giá trị chuỗi

 

Vì vậy, nếu giá trị biến $input của bạn không phải là một mảng thì nó sẽ gọi hàm htmlentities() để chuyển đổi các ký tự độc hại thành các thực thể HTML. Vì vậy, sử dụng chức năng này nếu khách truy cập của bạn nhập một tập lệnh như thế này

 

<script> alert("This is a message"); </script>

 

Sau đó, nó sẽ chuyển đổi các ký tự thành này

 

&lt;script&gt;alert( &quot;This is a message&quot; );&lt;/script&gt;

 

Như bạn có thể thấy tập lệnh sẽ không đọc được nữa khi xem vì chúng tôi đã chuyển đổi nó thành các thực thể

 

Vì vậy, tiếp theo tôi gọi hàm sanitize() bên trong tệp lưu của mình. tệp php ở đây trông như thế nào

 

$request = sanitize($_REQUEST);

 

Vì vậy, tôi làm sạch biến $_REQUEST Super Global trước khi lưu nó vào cơ sở dữ liệu của chúng tôi

 

Đây là mã hoàn chỉnh của lưu của tôi. tập tin php

 

<?php
	// include config file
	require_once 'config.php';

	//a PHP Super Global variable which used to collect data after submitting it from the form
	// Sanitize fist the values of this variable
	$request = sanitize($_REQUEST);
	//get email address value
	$email = $request['email']; 
	//get first name value
	$first_name = $request['first_name'];
	//get last name value 
	$last_name = $request['last_name'];
	//get address value
	$address = $request['address'];

	// Defined $result as array
	$result = [];
	
	if(!isEmailValid($email)):
		$result['has_error'] = 1;
		$result['response'] = "Email address is invalid.";
	elseif(isEmailExists($db, "employees", $email)):
		$result['has_error'] = 1;
		$result['response'] = "Email address is already exists.";
	endif;

	// Check if no errors
	if(!count($result)):
		// SQL Statement
		$sql = "INSERT INTO employees (email, first_name, last_name, address)
		VALUES ('".$email."', '".$first_name."', '".$last_name."', '".$address."')";

		// Process the query
		if ($db->query($sql)) {
		  $result['response'] = "Employee has been created.";
		} else {
		  $result['response'] = "Error: " . $sql . "<br>" . $db->error;
		}

		// Close the connection after using it
		$db->close();
	endif;

	// Encode array into json format
	echo json_encode($result);


?>

 

Được rồi, bạn đã sẵn sàng và dữ liệu của bạn sạch sẽ trước khi chúng tôi xử lý dữ liệu đó. Vì vậy, tôi hy vọng rằng bây giờ bạn đã có ý tưởng về tầm quan trọng của điều này và áp dụng nó vào các dự án của bạn. Nếu bạn muốn xem nó hoạt động, chỉ cần nhấp vào nút "Tải xuống" để lấy mã nguồn đầy đủ và kiểm tra nó tại địa phương của bạn

Tôi đã chỉ cho bạn cách làm sạch và xác thực các trường biểu mẫu bằng cách sử dụng PHP vì nó đã trở thành một trong những khía cạnh quan trọng của bảo mật. Hy vọng bạn thích nó. Hãy tiếp tục theo dõi chúng tôi để tìm hiểu thêm và cung cấp cho chúng tôi phản hồi của bạn trong không gian nhất định bên dưới. 🙂

Vệ sinh đầu vào là một khái niệm thú vị trong PHP. Vệ sinh có nghĩa là thoát các ký tự trái phép trong đầu vào. Hãy cùng tìm hiểu một số phương pháp hay nhất để xử lý thông tin đầu vào theo cách an toàn và bảo mật

Sử dụng hàm chuỗi thoát thực () trong các câu lệnh mysql

Thí dụ

real_escape_string($_POST['street']);
?>

chúng ta có thể sử dụng htmlentities() và html_entity_decode() trong khi chèn dữ liệu vào cơ sở dữ liệu và hiển thị trong Trình duyệt

FILTER_SANITIZE_EMAIL "email" Xóa tất cả các ký tự ngoại trừ chữ cái, chữ số và !#$%&'*+-=?^_`{|}~@.[]. FILTER_SANITIZE_ENCODED "được mã hóa" FILTER_FLAG_STRIP_LOW,
<script> alert("This is a message"); </script>
0,
<script> alert("This is a message"); </script>
1,
<script> alert("This is a message"); </script>
2,
<script> alert("This is a message"); </script>
3 Chuỗi mã hóa URL, tùy chọn loại bỏ hoặc mã hóa các ký tự đặc biệt.
<script> alert("This is a message"); </script>
4 "magic_quotes" Áp dụng dấu gạch chéo(). (KHÔNG ĐƯỢC DÙNG kể từ PHP 7. 3. 0 và ĐÃ LOẠI BỎ kể từ PHP 8. 0. 0, sử dụng
<script> alert("This is a message"); </script>
5 thay thế. )
<script> alert("This is a message"); </script>
5 "add_slashes" Áp dụng add_lashes(). (Có sẵn kể từ PHP 7. 3. 0) !#$%&'*+-=?^_`{|}~@.[]1 "number_float" !#$%&'*+-=?^_`{|}~@.[]2, !#$%&'*+-=?^_`{|}~@.[]3, !#$%&'*+-=?^_`{|}~@.[]4 Xóa tất cả các ký tự ngoại trừ chữ số, !#$%&'*+-=?^_`{|}~@.[]5 và tùy chọn !#$%&'*+-=?^_`{|}~@.[]6. !#$%&'*+-=?^_`{|}~@.[]7 "number_int" Xóa tất cả các ký tự trừ chữ số, dấu cộng và dấu trừ. !#$%&'*+-=?^_`{|}~@.[]8 "special_chars" FILTER_FLAG_STRIP_LOW,
<script> alert("This is a message"); </script>
0,
<script> alert("This is a message"); </script>
1,
<script> alert("This is a message"); </script>
3 Mã hóa HTML FILTER_SANITIZE_ENCODED3 và các ký tự có giá trị ASCII nhỏ hơn 32, tùy chọn loại bỏ hoặc mã hóa các ký tự đặc biệt khác. FILTER_SANITIZE_ENCODED4 "full_special_chars" FILTER_SANITIZE_ENCODED5, Tương đương với việc gọi htmlspecialchars() với bộ FILTER_SANITIZE_ENCODED6. Báo giá mã hóa có thể bị vô hiệu hóa bằng cách đặt FILTER_SANITIZE_ENCODED5. Giống như htmlspecialchars(), bộ lọc này biết về default_charset và nếu một chuỗi byte được phát hiện tạo nên một ký tự không hợp lệ trong bộ ký tự hiện tại thì toàn bộ chuỗi sẽ bị từ chối dẫn đến chuỗi có độ dài 0. Khi sử dụng bộ lọc này làm bộ lọc mặc định, hãy xem cảnh báo bên dưới về cách đặt cờ mặc định thành 0. FILTER_SANITIZE_ENCODED8 "chuỗi" FILTER_SANITIZE_ENCODED5, FILTER_FLAG_STRIP_LOW,
<script> alert("This is a message"); </script>
0,
<script> alert("This is a message"); </script>
1,
<script> alert("This is a message"); </script>
2,
<script> alert("This is a message"); </script>
3, FILTER_FLAG_STRIP_LOW5 Tách các thẻ và dấu ngoặc kép và dấu nháy đơn mã hóa HTML, tùy chọn tách hoặc mã hóa các ký tự đặc biệt. Báo giá mã hóa có thể bị vô hiệu hóa bằng cách đặt FILTER_SANITIZE_ENCODED5. (Không dùng nữa kể từ PHP 8. 1. 0, thay vào đó hãy sử dụng htmlspecialchars(). ) FILTER_FLAG_STRIP_LOW7 Bí danh "stripped" của bộ lọc "string". (Không dùng nữa kể từ PHP 8. 1. 0, thay vào đó hãy sử dụng htmlspecialchars(). ) FILTER_FLAG_STRIP_LOW8 "url" Xóa tất cả các ký tự ngoại trừ chữ cái, chữ số và FILTER_FLAG_STRIP_LOW9.
<script> alert("This is a message"); </script>
00 "unsafe_raw" FILTER_FLAG_STRIP_LOW,
<script> alert("This is a message"); </script>
0,
<script> alert("This is a message"); </script>
1,
<script> alert("This is a message"); </script>
2,
<script> alert("This is a message"); </script>
3, FILTER_FLAG_STRIP_LOW5 Không làm gì cả, tùy chọn loại bỏ hoặc mã hóa các ký tự đặc biệt. Bộ lọc này cũng có bí danh là
<script> alert("This is a message"); </script>
07

Vệ sinh đầu vào là gì?

Khử trùng dữ liệu đầu vào kiểm tra dữ liệu được nhập và xóa mọi thứ có thể gây nguy hiểm tiềm tàng . Một ví dụ điển hình về điều này là trên một mẫu trang web. Một hacker có thể cố gắng giành quyền truy cập vào dữ liệu của trang web thông qua một cuộc tấn công SQL injection.

Vệ sinh có nghĩa là gì trong lập trình?

Khử trùng HTML là quá trình kiểm tra tài liệu HTML và tạo tài liệu HTML mới chỉ giữ lại bất kỳ thẻ nào được chỉ định là “an toàn” và mong muốn. HTML sanitization can be used to protect against cross-site scripting (XSS) attacks by sanitizing any HTML code submitted by a user.

Vệ sinh bộ lọc trong PHP là gì?

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

Vệ sinh trong xác nhận là gì?

Xác thực kiểm tra xem đầu vào có đáp ứng một bộ tiêu chí hay không (chẳng hạn như một chuỗi không chứa dấu nháy đơn độc lập). Sanitization sửa đổi đầu vào để đảm bảo rằng nó hợp lệ (chẳng hạn như nhân đôi dấu nháy đơn).