Лучший способ проверить вводимый пользователем JDBC?

StackOverflow https://stackoverflow.com/questions/145728

  •  02-07-2019
  •  | 
  •  

Вопрос

Есть ли встроенный способ избежать пользовательского ввода в Java с помощью JDBC?Что-то похожее на версию php mysql_real_escape() функция.Каков наилучший способ проверки входных данных?

Это было полезно?

Решение

Если вы имеете в виду, как убедиться, что пользовательский ввод не может быть использован при атаках с использованием SQL-инъекций, способ сделать это (и способ, которым весь SQL должен быть написан на JDBC) - использовать подготовленные инструкции.JDBC автоматически обработает любое необходимое экранирование.

http://java.sun.com/docs/books/tutorial/jdbc/basics/prepared.html

Другие советы

Просто в дополнение к предложению @skaffman, PreparedStatements решают проблему для большинства приложений.Однако существуют некоторые приложения, в которых (части) инструкций SQL (в отличие от просто значений параметров) берутся из пользовательского ввода (например, параметр URL, содержащий предложение ORDER BY ).Просто убедитесь, что вы их тоже продезинфицировали или, что еще лучше, по возможности избегайте подобных конструкций.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top