есть ли SQL инъекция? - PullRequest
       2

есть ли SQL инъекция?

1 голос
/ 14 февраля 2020

У меня есть такой код с запросом оператора, не могли бы вы мне помочь? SQL Внедрение или это безопасный код?

<%


  String aUser = request.getParameter("user");
  Conn aPlug = null;
  Statement aStatement = null;
  ResultSet aResultSet = null;

    aPlug = Conn.getPlug("fetchAssetId");
    aStatement = Conn.getConnection().createStatement();
    aResultSet = aStatement.executeQuery("select pass, file_name from users where user_id = owner and user_name = '" + aUser + "'");


    %>

спасибо

1 Ответ

0 голосов
/ 14 февраля 2020

Да, этот код уязвим.

Инъекция происходит, когда вы предоставляете пользовательские значения непосредственно в ваш запрос. Вот предоставленное пользователем значение:

String aUser = request.getParameter("user");

Оно исходит из параметра GET, то есть ?user='; DROP TABLE..

А вот бит, где оно используется в вашем запросе:

user_name = '" + aUser + "'

Вместо этого следует использовать PreparedStatement , как это довольно неплохо описано для таблиц бобби .

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