Làm sạch đầu vào của người dùng là một phần quan trọng của quá trình phát triển phần mềm. Việc tin tưởng hoặc bỏ qua việc làm sạch đầu vào của người dùng có thể dẫn đến việc truy cập trái phép vào nội dung ứng dụng của bạn, chủ yếu là dữ liệu người dùng hoặc thậm chí cả máy chủ mà ứng dụng của bạn được lưu trữ trên đó Hình ảnh đầy đủ trên XKCD Có thể đạt được nội dung vệ sinh bằng cách sử dụng các lớp và Bộ lọcNhà máyThành phần này tạo một bộ định vị mới với các bộ lọc được xác định trước được gắn vào nó. Mỗi bộ lọc được tải chậm để có hiệu suất tối đa. Để khởi tạo nhà máy và truy xuất nhà máy bằng chất khử trùng đặt trước, bạn cần gọi số Alpha( mixed $input ): string | array
4newInstance();
Bây giờ bạn có thể sử dụng công cụ định vị bất cứ nơi nào bạn cần và làm sạch nội dung theo nhu cầu của ứng dụng của bạn Thành phần này triển khai dịch vụ định vị và có thể được sử dụng như một thành phần độc lập mà không cần khởi tạo bộ lọc tích hợp HelloSanitizer::class,
];
$locator = new Filter($services);
$text = $locator->hello('World');
GHI CHÚ. Vùng chứa đã có một đối tượng được tải bằng chất khử trùng được xác định trước. Thành phần này có thể được truy cập bằng tên Alpha( mixed $input ): string | array
5
Được xây dựng trongGHI CHÚ. Khi thích hợp, chất khử trùng sẽ chuyển giá trị thành loại dự kiến. Ví dụ: trình khử trùng Alpha( mixed $input ): string | array
6 sẽ xóa tất cả các ký tự không phải là số khỏi đầu vào, chuyển đầu vào thành một số nguyên và trả về giá trị tuyệt đối của nó
Sau đây là các bộ lọc tích hợp được cung cấp bởi thành phần này Alpha( mixed $input ): string | array
6
Xóa mọi ký tự không phải là số, chuyển giá trị thành số nguyên và trả về giá trị tuyệt đối của nó. Bên trong, nó sử dụng filter_var cho phần nguyên, intval để truyền và absint Alpha( mixed $input ): string | array
8
Alnum( mixed $input ): string | array
Loại bỏ tất cả các ký tự không phải là số hoặc ký tự của bảng chữ cái. Nó sử dụng preg_replace cũng có thể chấp nhận các mảng chuỗi làm tham số Alpha( mixed $input ): string | array
9
Alpha( mixed $input ): string | array
Loại bỏ tất cả các ký tự không phải là ký tự của bảng chữ cái. Nó sử dụng preg_replace cũng có thể chấp nhận các mảng chuỗi làm tham số BoolVal( mixed $input ): bool
0
BoolVal( mixed $input ): bool
Truyền giá trị thành boolean Nó cũng trả về BoolVal( mixed $input ): bool
1 nếu giá trị làNó cũng trả về BoolVal( mixed $input ): bool
2 nếu giá trị làBoolVal( mixed $input ): bool
3
Email( mixed $input ): string
Xóa tất cả các ký tự ngoại trừ chữ cái, chữ số và BoolVal( mixed $input ): bool
4. Bên trong nó sử dụng filter_var với BoolVal( mixed $input ): bool
5BoolVal( mixed $input ): bool
6
FloatVal( mixed $input ): float
Xóa tất cả các ký tự ngoại trừ chữ số, dấu chấm, dấu cộng và dấu trừ và chuyển giá trị dưới dạng BoolVal( mixed $input ): bool
7. Bên trong nó sử dụng filter_var và BoolVal( mixed $input ): bool
8BoolVal( mixed $input ): bool
9
Xóa tất cả các ký tự ngoại trừ chữ số, dấu cộng và dấu trừ và truyền giá trị dưới dạng số nguyên. Bên trong nó sử dụng filter_var và Email( mixed $input ): string
0Email( mixed $input ): string
1
Lower( mixed $input ): string
Chuyển đổi tất cả các ký tự thành chữ thường. Nếu phần mở rộng mbstring được tải, nó sẽ sử dụng mb_convert_case để thực hiện chuyển đổi. Là một dự phòng, nó sử dụng hàm strtolower PHP, với utf8_decode Email( mixed $input ): string
2
LowerFirst( mixed $input ): string
Chuyển đổi ký tự đầu tiên của đầu vào thành chữ thường. Trong nội bộ nó sử dụng lcfirst Email( mixed $input ): string
3
Regex( mixed $input, mixed $pattern, mixed $replace ): string
Thực hiện thay thế biểu thức chính quy trên đầu vào bằng tham số Email( mixed $input ): string
4 và tham số Email( mixed $input ): string
5. Bên trong nó sử dụng preg_replaceEmail( mixed $input ): string
6
HelloSanitizer::class,
];
$locator = new Filter($services);
$text = $locator->hello('World');
0Thực hiện thay thế trên đầu vào, thay thế tham số Email( mixed $input ): string
5 bằng một chuỗi trống, loại bỏ nó một cách hiệu quả. Bên trong nó sử dụng str_replaceEmail( mixed $input ): string
5
HelloSanitizer::class,
];
$locator = new Filter($services);
$text = $locator->hello('World');
1Thực hiện thay thế trên đầu vào dựa trên các tham số đã truyền Email( mixed $input ): string
9 và FloatVal( mixed $input ): float
0. Bên trong nó sử dụng str_replaceFloatVal( mixed $input ): float
1
HelloSanitizer::class,
];
$locator = new Filter($services);
$text = $locator->hello('World');
2Thoát tất cả các ký tự HTML của đầu vào, cũng như FloatVal( mixed $input ): float
2 và các ký tự có giá trị ASCII nhỏ hơn 32. Bên trong nó sử dụng filter_varFloatVal( mixed $input ): float
3
HelloSanitizer::class,
];
$locator = new Filter($services);
$text = $locator->hello('World');
3Chuyển đổi tất cả các ký tự đặc biệt của đầu vào thành các thực thể HTML (cả dấu ngoặc kép và dấu ngoặc đơn). Bên trong nó sử dụng filter_var FloatVal( mixed $input ): float
4
HelloSanitizer::class,
];
$locator = new Filter($services);
$text = $locator->hello('World');
4Mã hóa các thực thể HTML. Trong nội bộ, nó sử dụng [htmlspecialchars][htmlspecialchars] FloatVal( mixed $input ): float
5
HelloSanitizer::class,
];
$locator = new Filter($services);
$text = $locator->hello('World');
5Bộ lọc này sẽ chỉ hoạt động đối với các phiên bản PHP thấp hơn 8. 1. Nó có sẵn để tương thích ngược. Bên trong nó sử dụng filter_var FloatVal( mixed $input ): float
6
HelloSanitizer::class,
];
$locator = new Filter($services);
$text = $locator->hello('World');
6Xóa tất cả các thẻ HTML và PHP khỏi đầu vào. Bên trong nó sử dụng strip_tags FloatVal( mixed $input ): float
7
Xóa tất cả khoảng trắng ở đầu và cuối khỏi đầu vào. Bên trong nó sử dụng trim FloatVal( mixed $input ): float
8
HelloSanitizer::class,
];
$locator = new Filter($services);
$text = $locator->hello('World');
7Chuyển đổi tất cả các ký tự thành chữ hoa. Nếu phần mở rộng mbstring được tải, nó sẽ sử dụng mb_convert_case để thực hiện chuyển đổi. Là một dự phòng, nó sử dụng hàm strtoupper PHP, với utf8_decode FloatVal( mixed $input ): float
9
HelloSanitizer::class,
];
$locator = new Filter($services);
$text = $locator->hello('World');
8Chuyển đổi ký tự đầu tiên của đầu vào thành chữ hoa. Trong nội bộ nó sử dụng ucfirst Lower( mixed $input ): string
0
HelloSanitizer::class,
];
$locator = new Filter($services);
$text = $locator->hello('World');
9Chuyển đổi thành chữ hoa ký tự đầu tiên của mỗi từ từ đầu vào. Bên trong nó sử dụng ucwords Lower( mixed $input ): string
1
Vệ sinh một URL. Bên trong nó sử dụng filter_var hằng sốCác hằng số có sẵn và có thể được sử dụng để xác định loại vệ sinh cần thiết Alnum( mixed $input ): string | array
0Phương pháp Lower( mixed $input ): string
2. Do đó, bạn có thể sử dụng bất kỳ bộ lọc nào làm phương pháp trực tiếp trên bộ định vị. Tên của các phương thức giống như tên được định nghĩa bởi các hằngAlnum( mixed $input ): string | array
1Alnum( mixed $input ): string | array
2Vệ sinh dữ liệuVệ sinh là quá trình loại bỏ các ký tự cụ thể khỏi một giá trị mà người dùng hoặc ứng dụng không yêu cầu hoặc mong muốn. Bằng cách vệ sinh đầu vào, chúng tôi đảm bảo rằng tính toàn vẹn của ứng dụng sẽ còn nguyên vẹn Alnum( mixed $input ): string | array
3Bộ điều khiểnBạn có thể truy cập đối tượng từ bộ điều khiển của mình khi truy cập dữ liệu đầu vào Lower( mixed $input ): string
3 hoặc Lower( mixed $input ): string
4 (thông qua đối tượng yêu cầu). Tham số đầu tiên là tên của biến cần lấy; . Tham số thứ hai cũng có thể là một mảng với bất kỳ số lượng chất khử trùng nào bạn muốn áp dụngAlnum( mixed $input ): string | array
4Tham số hành độngNếu bạn đã sử dụng làm bộ chứa DI của mình, thì nó đã được đăng ký cho bạn với chất khử trùng mặc định. Để truy cập nó, chúng ta có thể sử dụng tên Alpha( mixed $input ): string | array
5. Nếu bạn không sử dụng vùng chứa, bạn sẽ cần thiết lập dịch vụ trong vùng chứa để có thể truy cập được vùng chứa trong bộ điều khiển của mìnhChúng ta có thể khử trùng các giá trị được truyền vào các hành động của bộ điều khiển như sau Alnum( mixed $input ): string | array
5Lọc dữ liệuCả bộ lọc và vệ sinh dữ liệu, tùy thuộc vào chất khử trùng được sử dụng. Chẳng hạn, trình khử trùng FloatVal( mixed $input ): float
7 sẽ xóa tất cả khoảng trắng ở đầu và cuối, giữ nguyên đầu vào còn lại. Mô tả của từng chất khử trùng (xem ) có thể giúp bạn hiểu và sử dụng chất khử trùng theo nhu cầu của bạnAlnum( mixed $input ): string | array
6Thêm chất khử trùngBạn có thể thêm chất khử trùng của riêng bạn vào. Trình khử trùng có thể là một chức năng ẩn danh khi khởi tạo bộ định vị Alnum( mixed $input ): string | array
7Nếu bạn đã có một đối tượng định vị bộ lọc được khởi tạo (ví dụ: nếu bạn đã sử dụng và Alpha( mixed $input ): string | array
4), thì bạn chỉ cần thêm bộ lọc tùy chỉnhAlnum( mixed $input ): string | array
8Hoặc, nếu muốn, bạn có thể triển khai bộ lọc trong một lớp Alnum( mixed $input ): string | array
9kết hợp chất khử trùngĐôi khi một chất khử trùng không đủ cho dữ liệu của bạn. Chẳng hạn, một cách sử dụng rất phổ biến là trình khử trùng FloatVal( mixed $input ): float
6 và FloatVal( mixed $input ): float
7 để nhập văn bản. Thành phần này cung cấp khả năng chấp nhận một dãy tên cho chất khử trùng được áp dụng trên giá trị đầu vào. Ví dụ sau minh họa điều nàyAlpha( mixed $input ): string | array
0Lưu ý rằng tính năng này cũng hoạt động trên đối tượng, khi gọi các phương thức lấy dữ liệu từ Lower( mixed $input ): string
3 và Lower( mixed $input ): string
4, cụ thể là LowerFirst( mixed $input ): string
2 và LowerFirst( mixed $input ): string
3Alpha( mixed $input ): string | array
1Chất tẩy rửa tùy chỉnhMột chất khử trùng tùy chỉnh có thể được thực hiện như một chức năng ẩn danh. Tuy nhiên, nếu bạn thích sử dụng một lớp cho mỗi chất khử trùng, tất cả những gì bạn cần làm là làm cho nó có thể gọi được bằng cách triển khai phương thức với các tham số có liên quan
Vệ sinh 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. Để làm cho nhiệm vụ này dễ dàng hơn, PHP cung cấp tiện ích mở rộng bộ lọc gốc 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.
Làm cách nào để khử trùng mã 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
Sự khác biệt giữa xác thực và vệ sinh trong PHP là gì?
Xác thực dữ liệu = Xác định xem dữ liệu có ở dạng phù hợp không. Làm sạch dữ liệu = Xóa mọi ký tự không hợp lệ khỏi dữ liệu .
Bạn có nên vệ sinh đầu vào của người dùng?
Khử trùng và xác thực đầu vào thường là lớp bảo vệ đầu tiên . Sanitizing bao gồm xóa bất kỳ ký tự không an toàn nào khỏi đầu vào của người dùng và xác thực sẽ kiểm tra xem dữ liệu có ở định dạng và loại dự kiến hay không. Những kẻ tấn công đã sử dụng các lỗ hổng cổ điển trong nhiều năm với tỷ lệ thành công khá cao. |