Почему существует разница между безопасностью данных GET и POST?
$sql = "SELECT * FROM products WHERE id = {$_GET['id']}";
против
$sql = "SELECT * FROM products WHERE id = {$_POST['id']}";
В обоих случаях это ненадежный контент, и этонебезопасно интерполировать в ваш запрос SQL.
Использовать параметры запроса.Тогда вам не нужно беспокоиться о том, откуда поступили данные.
$sql = "SELECT * FROM products WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute( [ $_POST['id'] ] );
Использование параметров запроса просто и безопасно!