Làm cách nào tôi có thể khử trùng mã php của mình?

Bản tóm tắt. trong hướng dẫn này, bạn sẽ học cách phát triển một hàm PHP

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
9 có thể tái sử dụng để làm sạch đầu vào

Giới thiệu về vệ sinh đầu vào

Trước khi xử lý dữ liệu từ các nguồn không đáng tin cậy như yêu cầu HTTP

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
0 hoặc

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
1, trước tiên bạn phải luôn khử trùng dữ liệu đó

Làm sạch đầu vào có nghĩa là xóa các ký tự không hợp lệ bằng các kỹ thuật xóa, thay thế, mã hóa hoặc thoát

PHP cung cấp một danh sách các bộ lọc làm sạch mà bạn có thể sử dụng để làm sạch đầu vào một cách hiệu quả. Các chức năng sau sử dụng các bộ lọc này để khử trùng đầu vào

  • bộ lọc_input[]
  • bộ lọc_var[]
  • filter_input_array[]
  • filter_var_array[]

Trong hướng dẫn này, chúng ta sẽ tạo một hàm

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
9 có thể tái sử dụng để làm sạch các đầu vào theo cách biểu cảm hơn

Định nghĩa hàm sanitize[]

Giả sử bạn có các trường sau trong biến

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
3 và muốn làm sạch chúng

  • Tên
  • e-mail
  • tuổi tác
  • trọng lượng
  • trang chủ

Để làm điều đó, bạn có thể định nghĩa một hàm

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
9 và gọi nó như sau

$data = santize[$_POST, $fields];

Code language: PHP [php]

Hàm

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
9 sẽ trông như thế này

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]

Hàm có hai tham số

  • Tham số

    $fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

    Code language: PHP [php]
    6 là một mảng kết hợp. Nó có thể là

    $fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

    Code language: PHP [php]
    3,

    $fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

    Code language: PHP [php]
    8 hoặc một mảng kết hợp thông thường
  • Tham số

    $fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

    Code language: PHP [php]
    9 là một mảng chỉ định danh sách các trường có quy tắc

Hàm

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
9 trả về một mảng chứa dữ liệu đã được làm sạch

The

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
9 phải là một mảng kết hợp trong đó khóa là tên trường và giá trị là quy tắc cho trường đó. Ví dụ

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]

Lưu ý rằng

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
62 có nghĩa là một chuỗi các chuỗi

Để vệ sinh các lĩnh vực này

  • Đầu tiên, lặp lại

    $fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

    Code language: PHP [php]
    9 và sử dụng bộ lọc tương ứng cho từng. Ví dụ: nếu quy tắc là

    $fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

    Code language: PHP [php]
    64, bộ lọc sẽ là

    $fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

    Code language: PHP [php]
    65
  • Thứ hai, vệ sinh trường bằng bộ lọc

Để có bộ lọc dựa trên quy tắc của một trường, bạn có thể xác định ánh xạ giữa các quy tắc với các bộ lọc như thế này

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
6

Ví dụ: phần sau trả về bộ lọc của quy tắc

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
64

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
2

Để dọn dẹp nhiều trường cùng một lúc, bạn có thể sử dụng hàm

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
67

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
4

Tham số đầu tiên của hàm

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
67 là một mảng các biến để lọc. Và tham số thứ hai là một mảng các bộ lọc. Ví dụ, nó sẽ trông như thế này

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
6

Vì vậy, bạn cần trả về

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
69 này từ các mảng

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
9 và

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
21. Để làm điều đó, bạn có thể sử dụng chức năng

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
22 như thế này

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
1

Sau đây là hàm

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
9

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
3

Làm cho hàm sanitize[] linh hoạt hơn

Hàm

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
9 sử dụng hằng số

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
21. Để linh hoạt hơn, bạn có thể thêm một tham số và đặt giá trị mặc định của nó thành hằng số

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
21 như thế này

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
7

Ngoài ra, bạn có thể muốn làm sạch các trường trong

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
6 bằng cách sử dụng một bộ lọc e. g. ,

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
65

Để làm điều đó, bạn có thể

  • Đầu tiên, đặt tham số

    $fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

    Code language: PHP [php]
    9 là tùy chọn và đặt giá trị mặc định của nó thành một mảng trống

    $fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

    Code language: PHP [php]
    40
  • Thứ hai, thêm tham số bộ lọc mặc định
  • Thứ ba, nếu mảng

    $fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

    Code language: PHP [php]
    41 trống, hãy sử dụng bộ lọc mặc định

Hàm

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
9 sẽ giống như sau

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
0

Xóa khoảng trắng của chuỗi

Để xóa khoảng trắng của chuỗi, bạn sử dụng hàm

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
43. Và để loại bỏ các khoảng trắng của một mảng chuỗi các bạn sử dụng hàm

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
22 với hàm

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
43

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
1

Tuy nhiên,

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
6 có thể chứa các mục không phải là chuỗi. Để chỉ cắt mục chuỗi, bạn có thể sử dụng hàm

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
47 để kiểm tra xem mục đó có phải là chuỗi hay không trước khi cắt mục đó

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
2

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
6 có thể chứa một mục là một mảng các chuỗi. Ví dụ

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
3

Để cắt chuỗi trong mục

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
49, bạn cần sử dụng hàm đệ quy

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
4

Gọi array_trim[] từ hàm sanitize[]

Để gọi hàm

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
60 từ hàm

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
9

  • Đầu tiên, thêm một tham số mới có tên là

    $fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

    Code language: PHP [php]
    62 vào hàm

    function sanitize[array $inputs, array $fields] : array

    Code language: PHP [php]
    9 và đặt giá trị mặc định của nó thành true
  • Thứ hai, gọi

    $fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

    Code language: PHP [php]
    60 nếu tham số $trim là true

Phần sau đây hiển thị hàm

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
9 được cập nhật

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
5

Đặt nó tất cả cùng nhau

Phần sau đây hiển thị tệp

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
66 hoàn chỉnh với các hàm

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
21,

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
60 và

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
9

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
6

Sử dụng chức năng sanitize[]

Phần sau đây trình bày cách sử dụng hàm

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
9 để làm sạch dữ liệu trong

function sanitize[array $inputs, array $fields] : array

Code language: PHP [php]
11 bằng cách sử dụng các quy tắc làm sạch được chỉ định trong

$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];

Code language: PHP [php]
9

Việc vệ sinh có bắt buộc trong PHP không?

Vì vậy, để bảo vệ cơ sở dữ liệu khỏi tin tặc, cần phải vệ sinh và lọc dữ liệu do người dùng nhập trước khi gửi vào cơ sở dữ liệu .

Chức năng nào có thể làm sạch văn bản trong PHP?

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

Làm thế nào vệ sinh URL trong PHP?

Chúng tôi có thể làm sạch URL bằng cách sử dụng FILTER_SANITIZE_URL . Hàm này xóa tất cả các ký tự ngoại trừ chữ cái, chữ số và $-_. +. *'[],{}. \\^~[]`#%";/?. @&=.

Vệ sinh mã có nghĩa là gì?

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.

Chủ Đề