在简单的场景中,用户输入用于使用 SQL LIKE 过滤数据,是否有我应该注意的特殊字符?
$input = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
// Should I strip characters like '%'?
$sth = $db->prepare("SELECT `id` FROM `names` WHERE `name` LIKE :name");
$sth->execute(['name' => $input . '%']);
我指的是任何可能显着减慢查询/占用 CPU 并因此被用于恶意目的的东西。