Phòng chống XSS (Cross-site Scripting) bằng PHP

Hướng dẫn cách phòng chống XSS (Cross-site Scripting) trong PHP bằng cách lọc và thoát các đầu vào người dùng, nhằm bảo mật trang web trước các lỗ hổng XSS.

<?php
// Hàm thoát ký tự để ngăn chặn XSS
function escapeXSS($data) {
    return htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
}

// Ví dụ xử lý dữ liệu đầu vào từ người dùng
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Lấy dữ liệu từ form
    $user_input = $_POST['user_input'];
    
    // Thoát các ký tự đặc biệt để ngăn chặn XSS
    $safe_input = escapeXSS($user_input);
    
    // Hiển thị dữ liệu an toàn
    echo "Dữ liệu đã được thoát: " . $safe_input;
}
?>

<!-- Form nhập liệu từ người dùng -->
<form method="POST">
    <label for="user_input">Nhập nội dung:</label>
    <input type="text" id="user_input" name="user_input">
    <input type="submit" value="Gửi">
</form>

Giải thích chi tiết:

  1. Hàm escapeXSS():

    • Sử dụng hàm htmlspecialchars() để thoát các ký tự đặc biệt như &, <, >, "'. Điều này giúp ngăn chặn việc thực thi mã độc XSS khi dữ liệu được hiển thị trên trình duyệt.
    • Tham số ENT_QUOTES giúp thoát cả dấu nháy đơn (') và dấu nháy kép ("), và UTF-8 được chỉ định là mã hóa ký tự.
  2. Xử lý dữ liệu người dùng:

    • Khi người dùng nhập liệu vào form và gửi dữ liệu, dữ liệu sẽ được lấy từ $_POST['user_input'].
    • Dữ liệu này sau đó được thoát bằng hàm escapeXSS() trước khi được hiển thị lên trình duyệt, nhằm đảm bảo không có mã độc nào được thực thi.
  3. Form nhập liệu:

    • Form HTML cho phép người dùng nhập nội dung và gửi nó bằng phương thức POST. Sau khi xử lý, dữ liệu sẽ được hiển thị an toàn mà không gây ra lỗ hổng XSS.

Phiên bản PHP:

Mã này có thể chạy trên mọi phiên bản PHP từ 5.0 trở lên.



Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Tạo mã Captcha bằng PHP

Hướng dẫn cách tạo mã Captcha đơn giản bằng PHP để bảo vệ website khỏi các hành vi spam và bot tự động.
Cách truyền Authentication Header Token khi POST dữ liệu tới API bằng PHP

Hướng dẫn chi tiết cách sử dụng cURL trong PHP để truyền `Authentication Header Token` khi POST dữ liệu tới API. Giải pháp này giúp bảo mật và xác thực các yêu cầu tới API.
Cách gọi hàm PHP từ chuỗi được lưu trong biến

Hướng dẫn cách gọi một hàm PHP từ một chuỗi được lưu trong biến bằng cách sử dụng tính năng gọi hàm động trong PHP. Bài viết sẽ giới thiệu cách thực hiện với các ví dụ minh họa.
Ví dụ về lập trình hướng đối tượng (OOP) trong PHP

Hướng dẫn ví dụ cơ bản về lập trình hướng đối tượng (OOP) trong PHP, giải thích cách sử dụng các class và object để tổ chức mã nguồn theo phương pháp OOP.
Cập nhật nhiều cột trong MySQL bằng PHP

Hướng dẫn cách cập nhật nhiều cột trong MySQL bằng PHP. Mã PHP này sử dụng câu lệnh UPDATE để thay đổi nhiều giá trị của các cột trong cơ sở dữ liệu MySQL.
Xử lý đa luồng trong PHP bằng thư viện pthreads

Hướng dẫn chi tiết cách xử lý đa luồng trong PHP bằng cách sử dụng thư viện `pthreads`. Bài viết bao gồm các bước cài đặt, ví dụ minh họa, và cách áp dụng đa luồng để cải thiện hiệu suất ứng dụng PHP.
Hướng dẫn tạo mục lục tự động cho bài viết bằng PHP

Bài viết hướng dẫn bạn cách tạo mục lục tự động cho nội dung bài viết bằng PHP, sử dụng lớp `DOMDocument` để phân tích cú pháp HTML và tạo cấu trúc mục lục với các tiêu đề.
Sự khác biệt giữa hàm `split()` và `explode()` trong thao tác chuỗi PHP

Bài viết giải thích sự khác biệt giữa hàm `split()` và `explode()` trong PHP, hai hàm này được sử dụng để phân tách chuỗi nhưng có những cách hoạt động khác nhau.
Hướng dẫn upload nhiều hình ảnh trong PHP

Hướng dẫn chi tiết cách upload nhiều hình ảnh cùng lúc trong PHP, bao gồm xử lý file tải lên, kiểm tra định dạng và lưu trữ trên server.
Lấy ký tự cuối cùng của chuỗi trong PHP

Hướng dẫn cách sử dụng PHP để lấy ký tự cuối cùng của một chuỗi. Mã PHP này giúp bạn dễ dàng truy xuất ký tự cuối của chuỗi văn bản trong các thao tác xử lý chuỗi.

Đã thêm vào giỏ hàng