Просто чтобы пройти немного дальше по этой кроличьей норе.
Во-первых, очистите ваши входные данные и используйте параметризованные запросы. Просто исправьте свой код. Это самая важная вещь, над которой вы должны работать прямо сейчас.
Во-вторых, перемещение страницы входа не решает проблему. Если на вашем сайте есть другие доступные страницы, то я уверен, что у вас есть другие проблемы с внедрением SQL. См. № 1 выше.
В-третьих, держу пари, что вы подвержены всевозможным другим вещам, таким как XSS. Возьми немного и узнай, кто они. Затем потратьте некоторое время на переобучение кода для защиты. Подсказка: подтвердите ВСЕ. Если вы ожидаете число, принимайте только номер. Если вы ожидаете короткую строку, не допускайте встраивания в нее javascript.
Следует помнить одну мантру - доверять только браузеру, пользователям и даже системным администраторам настолько, насколько вам абсолютно необходимо. Другими словами, создайте свой сайт таким образом, чтобы вам не пришлось им вообще доверять.
Большинство компаний не знают, с какими угрозами они сталкиваются. Подсказка: внешние угрозы или только их часть. Внутренние угрозы обычно намного хуже. Я говорю это просто потому, что вы задаете вопрос, который пытается вставить только одну часть проблемы и игнорирует все остальное.
Недавно я разговаривал с компанией, которая утверждала, что у них есть проблемы с безопасностью. До встречи я зашел на их сайт и заметил, что у них есть идентификатор документа во всех их URL. Идентификатор был простым int. За несколько минут свободного времени я написал приложение, которое начиналось с doc id 1 и повторялось до тех пор, пока сервер не перестал выдавать данные. Было довольно много документов, которые я никогда бы не смог увидеть. Будучи добрым самаритянином, я рассказал им об этом.
Смысл этой истории в том, что sql инъекция, xss и т. Д. - это еще не все. Безопасность через неизвестность - еще один провал.