Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Các phương pháp làm sạch (sanitize) đầu vào người dùng trong PHP

Làm sạch đầu vào (sanitize) là thoát (escape) các ký tự không an toàn. Dưới đây là các phương pháp tốt nhất:

1. real_escape_string() với MySQLi

<?php
$conn = new mysqli("localhost", "root", "", "testdb");
$street = $conn->real_escape_string($_POST['street']);
?>

2. htmlentities() và html_entity_decode()

Dùng khi lưu vào DB và hiển thị trên trình duyệt.

<?php
$data['message'] = htmlentities($message); // lúc insert DB
echo html_entity_decode($data['message']); // lúc hiển thị
?>

3. escapeshellarg() cho lệnh shell

<?php
system('ls ' . escapeshellarg($data['dir']));
?>

Lưu ý quan trọng: Đối với truy vấn SQL, hãy ưu tiên Prepared Statements (PDO/MySQLi) thay vì chỉ escape chuỗi, vì nó an toàn hơn chống SQL Injection.