Можем ли мы использовать фильтр, чтобы избежать инъекции sql, которая поступает через URL-адрес? есть ли для этого фильтры с открытым исходным кодом? Есть такие фильтры с весной, а ..Фильтры с открытым исходным кодом
Пожалуйста, ответьте мне
Можем ли мы использовать фильтр, чтобы избежать инъекции sql, которая поступает через URL-адрес? есть ли для этого фильтры с открытым исходным кодом? Есть такие фильтры с весной, а ..Фильтры с открытым исходным кодом
Пожалуйста, ответьте мне
Вы должны фактически избежать запроса, который приходит через URL с помощью prepareStatement() в JDBC, а не применяя какое-то «фильтр» , Если вы используете реализацию ORM с помощью setParameter(), это решает проблему таким образом.
Sql injection обрабатывается в слое Persistence (где вы можете использовать Hibernate, JPA, iBatis и т. Д.), Где написаны подготовленные операторы. Убедитесь, что вы используете Prepared statement.
Большое спасибо за ответ – user2056989
Вам действительно нужен многогранный подход. Важным является использование подготовленных операторов или переменных привязки, но кто-то может ошибаться и пропускать оскорбительные запросы. Вы также должны настроить базу данных, чтобы пользовательские и автоматизированные пользователи имели только те привилегии, которые им нужны.
Ваш обычный пользователь не нуждается в CREATE TABLE
или DROP TABLE
привилегиях, поэтому не давайте им. Таблицы поиска, такие как US_STATES
, должны быть доступны только для чтения; не дайте никому INSERT
, UPDATE
, или DELETE
, если это не произойдет. Если Спрингфилд, Иллинойс разрушен в землетрясении, а столица перемещается, то временно дайте привилегии DBA UPDATE.
Рассмотрите также запись хранимых процедур для задач, которые должны выполнять пользователи. Вы можете предоставить процедурам свои собственные привилегии и предоставить пользователю почти никто иной, как доступ к ним.
Помните 'magicquotes' от PHP? Они пытались сделать что-то подобное, это была главная критика и теперь не рекомендуется;). Запросить предварительную обработку - это не способ справиться с этим. –