Пишу первый свой сайт и заранее заколачиваю стальной броней каждый кусок кода от таких же "любознательных" как я.
Дело такое: http://site.com/?id=1
и такое:
В первом случае у нас id без пробела, второй напротив - с ним. Прежде чем задавать этот вопрос я прошелся по сайтам и проверил кто как поступает в данном случае.
Итак, на пробел негативно реагируют и посылают в лес:
- facebook - habrahabr
Игнорируют
- Google и его проекты - Toster, Freelansim
Для меня Google и Хабр в данном плане авторитетны (думаю администрация Хабра научена дефейсом), но как ни странно - позиции расходятся.
Быть или не быть?
К "любознательности" этот вопрос не имеет отношения. А думать, что это каким-либо образом относится к SQL - прямая дорога к инъекции.
А имеет - к валидации данных и, частично, к юзабилити и СЕО.
Пробел - символ нерелевантный, его могут тримать автоматом. Так что буду говорить о "частично валидных" урлах в целом. Учитывая, что урлы руками сейчас никто не набирает, а поисковики могут плохо относиться к существованию одной и той же страницы с разными урлами - я бы не пропускал, отдавал 404.
Правильнее выдавать ошибку, если такой аргумент недопустим, или нет страницы с id=" 1", т.к. не будет дублирования страницы по разным URL. Также, если касаться вопросов безопасности а не SEO, то правильно проверять все входные парамерты по типу и допустимым значениям, и использовать prepared statments и биндинг параметров при работе с базой.