Я знаю, что санация параметров (например, удаление кавычек) не является идеальным решением против внедрения SQL, когда вы не можете использовать setParameters ().
Но безопасно ли санировать параметры, проверяя, не содержат ли они (параметры) строки с пустым пробелом после него, как показано ниже ???
'УДАЛИТЬ', 'ALTER', 'DROP', 'SELECT', 'TABLE'
Например, параметр электронной почты передан на сервер, но содержит ключевое слово DROP: String param = "john @ mail'DROP myTable"
SELECT * from Users where email = 'john@mail'DROP mytable'
Итак, моя таблица удалена;
Обратите внимание на пространство, оставленное после каждого ключевого слова.Таким образом, если данные в базе данных содержат перечисленные ключевые слова, но без пробела, они будут разрешены к использованию, в противном случае это должен быть хакер, пытающийся причинить вред моим данным (ALTER TABLE mydb).
Пожалуйста, не стесняйтесь добавлять в качестве примера любой движок SQL: SQL, Oracle, HANA, MySQL
Спасибо