Предотвращение внедрения SQL в уровне DAO - PullRequest
0 голосов
/ 25 июня 2011

Предположим, что у нас есть данные внутри DTOObject

public void loginUser(UserDTO)
{

String name = UserDTO.getName();
String pwd = UserDTO.getPassword();
String sql  = "select UNAME , PWD from LoginTable where uname='"+name+"' and PWD='"+pwd+"';
}

Пожалуйста, скажите мне в этом коде, как мы можем предотвратить SQL-инъекцию ??Как мы можем проверить наличие вредоносных персонажей ??

Ответы [ 2 ]

0 голосов
/ 25 июня 2011

Вот официальное руководство по использованию PreparedStatement в JDBC. Есть также много других, если вы ищете вокруг.

Для протокола я должен сказать, что я не согласен с утверждением о том, что основное преимущество подготовленного утверждения заключается в том, что оно может быть (хотя и не обязательно) отправлено в базу данных заранее. Основным преимуществом являются параметры.

0 голосов
/ 25 июня 2011

Лучше всего переместить SQL из DTO, где он не принадлежит, в DAO, где он принадлежит, и использовать там PreparedStatement.

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