Чтобы расширить ответ Сандипа, у меня была куча строк в журналах, которые были неправильно закодированы в bit.ly. Они хотели закодировать только URL, но поставить пробел в твиттере и другие вещи после пробела. Это выглядело так
? productID =26%20via%20@LFS
Обычно это не было бы проблемой, но я получаю много попыток внедрения SQL, поэтому я перенаправляю все, что не является действительным идентификатором, на 404. Я использовал метод preg_replace, чтобы сделать недопустимый идентификатор продукта. строка в действительный идентификатор продукта.
$productID=preg_replace('/[\s]+.*/','',$productID);
Я ищу пробел в URL, а затем удаляю все после него.