Spring Framework со стандартным JDBC в Java - PullRequest
0 голосов
/ 24 июня 2011

У меня есть вопрос, и я надеюсь, что вы ответите на него, пожалуйста.

Я хочу использовать Spring Framework со стандартным jdbc следующим образом:

"SELECT usernmae FROM users WHERE username='" + usename + '"

Возможно ли сделать то, чего я не хочу?использовать подготовленное заявление.Это просто пример запроса.

1 Ответ

1 голос
/ 24 июня 2011

JDBC не более или менее уязвим для внедрения SQL, чем любой другой механизм подключения SQL.Уязвимость к SQL-инъекциям попадает в руки людей, которые пишут код.Шаблоны JDBC предоставляют способ управления соединением с базой данных, не обязательно защищающий вас от внедрения SQL.Вы по-прежнему более чем способны написать дрянной код с шаблоном JDBC, который уязвим для SQL-инъекций.

Редактировать Чтобы ответить на обновление вашего вопроса.Вы можете сделать это, есть простой метод query в шаблоне JDBC, но это сделает вас уязвимым для SQL-инъекций.Простой ответ: всегда используйте подготовленные высказывания .Единственный раз, когда вы можете безопасно избегать их использования, это если вы не включаете какие-либо входные данные в запрос, которые могут получить от пользователя.Тем не менее, вам гораздо лучше просто использовать подготовленное заявление даже в тех случаях, когда нет вероятности, что ваше предположение неверно или оно изменится в будущем.Всегда, всегда, всегда используйте готовые высказывания.Их использование также дает некоторые преимущества в производительности, поскольку механизм SQL может кэшировать скомпилированный оператор для последующего использования, вместо того чтобы каждый раз перекомпилировать оператор SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...