Bạn nên sử dụng cái nào để làm sạch một địa chỉ PHP?

Phát triển trang web với PHP đòi hỏi phải tính đến một số cân nhắc. Tại một thời điểm nào đó, nhà phát triển PHP sẽ xử lý dữ liệu do khách truy cập trang web nhập vào. Dữ liệu thường được gửi đến trang web bằng HTTP POST, ví dụ từ biểu mẫu HTML. Vì một trang web có thể được truy cập bởi hàng tỷ người trên khắp Thế giới, rất có thể ai đó sẽ nhập nhầm dữ liệu có định dạng sai hoặc ai đó sẽ thử và nhập dữ liệu có thể gây ra sự cố cho ứng dụng PHP trên máy chủ web. Do đó, nói chung nên kiểm tra dữ liệu đầu vào để nó khớp với định dạng mà ứng dụng PHP có thể sử dụng chính xác

Trong bài viết này, một cái nhìn ngắn gọn về dọn dẹp dữ liệu cho PHP được thảo luận. Dọn dẹp dữ liệu đầu vào được gọi là thực hiện dọn dẹp dữ liệu, không chỉ được sử dụng để đảm bảo dữ liệu có định dạng chính xác để xử lý mà còn được sử dụng để ngăn chặn các kỹ thuật chèn mã, ví dụ như cross-site scripting [XSS] hoặc SQL injection. Để thực hành mã trong bài viết này, bạn sẽ cần truy cập vào máy chủ web chạy PHP, hầu hết các gói lưu trữ trang web đơn giản đều hỗ trợ PHP. Ngoài ra, hãy chạy máy chủ web trên máy tính của bạn [ví dụ: chạy PHP trên Windows]

Ghi chú. Nếu mã trong bài viết này đã được kiểm tra trên một trang web đang hoạt động, thì hãy xóa mã đó sau khi quá trình kiểm tra kết thúc. Nó cần thêm mã để bảo vệ khỏi bị lạm dụng, ví dụ như một số hình thức kiểm tra chống bot, chẳng hạn như CAPTCHA. Xem bài viết Tek Eye Mã reCAPTCHA để tải xuống để giới thiệu và thử nghiệm để biết ví dụ về việc triển khai reCAPTCHA của Google

Bắt đầu với một biểu mẫu HTML đơn giản

Để thực hành vệ sinh dữ liệu PHP, hãy bắt đầu với một ví dụ đơn giản về PHP xử lý một số dữ liệu. Trong bài viết của Tek Eye Biểu mẫu liên hệ HTML đơn giản cho trang web dựa trên PHP, dữ liệu từ trường tên và thông báo được gửi đến máy chủ web để PHP xử lý

Mã trình xử lý biểu mẫu PHP cho ví dụ trên chỉ gửi lại một trang web có dữ liệu đã nhập



    
        
        HTML Form Demo
    
    
        

Processing feedback...

Dễ dàng chuyển dữ liệu qua chức năng dọn dẹp trước khi xử lý. Đoạn mã dưới đây cho thấy một chức năng để loại bỏ khoảng trắng không cần thiết, hữu ích trước khi lưu trữ dữ liệu trong trường cơ sở dữ liệu

/* Clean up any data */
function clean_data[$data] {
    /* trim whitespace */
    $data = trim[$data];
    return $data;
}
$message=clean_data[$_POST['message']];
/* save data to database */

Sau đó, mã làm sạch dữ liệu bổ sung có thể được thêm vào chức năng clean_data[] khi được yêu cầu. Ví dụ: ai đó có thể thử và gửi mã độc hại đến một trang web thông qua hộp nhập liệu [đây là bản trình diễn đơn giản để minh họa điểm này]

Thêm một lệnh gọi tới htmlspecialchars[] trong hàm clean_data[] sẽ dừng ví dụ đó

Đây là mã đầy đủ cho ví dụ trên



    
        
        HTML Form Demo
    
    
        

Processing feedback...

Các hàm PHP khác có thể được sử dụng trên dữ liệu đầu vào, ví dụ như dải gạch chéo [] hoặc dấu gạch chéo bổ sung [] để bỏ trích dẫn hoặc trích dẫn một chuỗi. Mã khử trùng dữ liệu được thêm vào ứng dụng PHP sẽ dành riêng cho mục đích sử dụng dữ liệu đầu vào. Hãy nhớ xem xét cách dữ liệu sẽ được sử dụng để xác định việc làm sạch dữ liệu và kiểm tra dữ liệu cần được áp dụng. Ví dụ: lưu trữ tên tệp đầu vào vào trường cơ sở dữ liệu, bạn có cần đảm bảo rằng không có đường dẫn thư mục không. Ai đó có thể đang cố thao túng ứng dụng bằng các đường dẫn tương đối trong tên tệp

Sử dụng Bộ lọc PHP để Vệ sinh và Xác thực Dữ liệu

PHP đi kèm với các chức năng bộ lọc tích hợp để giúp dọn dẹp và kiểm tra các loại dữ liệu khác nhau. 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
  • Chuỗi không được trích dẫn
  • Số và Booleans
  • Tên miền và URL
  • Địa chỉ IP và MAC
  • Biểu thức chính quy
  • ASCII có thể in

Xem bộ lọc xác thực khi kiểm tra dữ liệu và bộ lọc làm sạch khi dọn dẹp dữ liệu.

/* Clean up any data */
function clean_data[$data] {
    /* trim whitespace */
    $data = trim[$data];
    return $data;
}
$message=clean_data[$_POST['message']];
/* save data to database */
1 hỗ trợ các tùy chọn xác thực và xác thực dữ liệu khác nhau thông qua các cờ bộ lọc. Có thể triển khai bộ lọc tùy chỉnh thông qua gọi lại

Ghi chú.

/* Clean up any data */
function clean_data[$data] {
    /* trim whitespace */
    $data = trim[$data];
    return $data;
}
$message=clean_data[$_POST['message']];
/* save data to database */
1 không hoàn hảo và có thể không hoạt động đối với một số văn bản đầu vào và ngôn ngữ nước ngoài lạ, nhưng hợp lệ. Xem các bình luận trong PHP khác nhau. trang tài liệu mạng

Ví dụ về bộ lọc PHP xác thực đơn giản

Ví dụ PHP POST đơn giản ở trên được mở rộng để xem địa chỉ email có được nhập vào trường tên hay không. Đây là mã để kiểm tra địa chỉ email bằng PHP

/* Clean up any data */
function clean_data[$data] {
    /* trim whitespace */
    $data = trim[$data];
    return $data;
}
$message=clean_data[$_POST['message']];
/* save data to database */
1

if [!filter_var[$_POST['name'], FILTER_VALIDATE_EMAIL] === FALSE]
    echo["You entered an email address for your name"];

Ghi chú. Trong tài liệu PHP cho

/* Clean up any data */
function clean_data[$data] {
    /* trim whitespace */
    $data = trim[$data];
    return $data;
}
$message=clean_data[$_POST['message']];
/* save data to database */
1, nó nói rằng 'Trả về dữ liệu đã lọc hoặc SAI nếu bộ lọc bị lỗi. ' Do đó, việc sử dụng so sánh giống hệt
/* Clean up any data */
function clean_data[$data] {
    /* trim whitespace */
    $data = trim[$data];
    return $data;
}
$message=clean_data[$_POST['message']];
/* save data to database */
2, vì ________ 13 sẽ chỉ trả về _______ 14 hoặc dữ liệu được truyền vào [một chuỗi]. Đây là trình xử lý dữ liệu PHP được cập nhật đầy đủ



    
        
        HTML Form Demo
    
    
        

Processing feedback...

Đọc tài liệu PHP về các bộ lọc PHP, đặc biệt là các nhận xét về tài liệu này, vì chúng bao gồm các chi tiết khác về hành vi của bộ lọc PHP

Làm cách nào để khử trùng đầu vào HTML 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

Làm cách nào để khử trùng một chuỗi PHP?

Chúng tôi có thể làm sạch chuỗi bằng cách sử dụng FILTER_SANITIZE_STRING để xóa các thẻ và dấu ngoặc kép khác nhau để làm cho chuỗi an toàn khi sử dụng. Id của cái này là 513.

Làm cách nào để khử trùng và xác thực trong PHP?

php // Url trang web mẫu $url = "http. //www. ví dụ. com"; // Xóa tất cả các ký tự không hợp lệ khỏi url $sanitizedUrl = filter_var[$url, FILTER_SANITIZE_URL]; // Xác thực url trang web if[$url == $sanitizedUrl && filter_var[$url, . ...

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

Trước tiên, hãy phân tích cú pháp JSON thành một mảng PHP, sau đó lọc từng giá trị trong mảng như cách bạn làm với nội dung yêu cầu thông thường, bạn có thể ánh xạ các khóa JSON tới các bộ lọc sơ đồ và cờ/tùy chọn e. g. Điều này có thể đáng để yêu cầu kéo tại trang dự án GitHub của php. Có thể cần thiết thường xuyên để xác thực chuỗi json

Chủ Đề