У меня есть одно приложение, в котором я не могу использовать «PreparedStatement» в некоторых местах.
Большинство запросов SQL похожи на….String sql = "delete from" + tableName;
Так что мне нравится знать, как исправить проблему «SQL-инъекция» в моем коде.
С уважением, Санджай Сингх
======================= Отредактировано После получения ответа и нравится проверять решение ========== В соответствии с предложенным предложением я определил одну стратегию предотвращения внедрения SQL в моем случае….Хотелось бы узнать представления, я работаю над сертификатом VeraCode для нашего приложения…
Фильтр данных, чтобы он не содержал пробелов и не экранировал символ SQL (поэтому, если есть какой-либо внедренный код, он не будетчасть моего динамического SQL, поэтому имя моего столбца и имя таблицы нельзя использовать для вставки SQL-запроса).
public static String getTabColName (String tabColName)
{
if (tabColName == null|| "" .equals (tabColName.trim ()))
return "";
String tempStr = StringEscapeUtils.escapeSql (tabColName.trim ());
// Если это значение содержимого пространства, это означаетэто недопустимая таблица
// или имя столбца, поэтому не используйте его в динамически генерируемом SQL
// используйте пробел, чтобы создать недопустимый запрос SQL
return tempStr.indexOf ('')== -1?tempStr: "";
}