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.