How does the use of filters like filter_input in PHP enhance security measures compared to traditional escaping functions?

Using filters like filter_input in PHP enhances security measures compared to traditional escaping functions because filters validate input data based on specified filters, ensuring that the input meets the expected criteria. This helps prevent common security vulnerabilities such as SQL injection, cross-site scripting, and other forms of malicious input. Filters provide a more structured and reliable way to sanitize input data compared to manual escaping functions.

// Using filter_input to sanitize input data
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$password = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING);

// Using prepared statements to prevent SQL injection
$stmt = $pdo->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->execute([$username, $email, $password]);