Delphi - предотвращение от внедрения SQL

Мне нужно защитить приложение от SQL-инъекции. Приложение подключается к Oracle с помощью ADO и выполняет поиск имени пользователя и пароля для аутентификации.

Из того, что я читал до сих пор, лучший подход - использовать параметры, а не назначать весь SQL как строку. Примерно так:

query.SQL.Text := 'select * from table_name where name=:Name and id=:ID'; 
query.Prepare; 
query.ParamByName( 'Name' ).AsString := name; 
query.ParamByName( 'ID' ).AsInteger := id; 
query.Open;

Кроме того, я думаю проверить ввод от пользователя и удалить ключевые слова SQL, такие как delete, insert, select и т. Д. Любой вводимый символ, отличный от обычных букв и цифр ASCII, будет удален.

Это обеспечит мне минимальный уровень безопасности?

Я не хочу использовать какие-либо другие компоненты, кроме стандарта Delphi 7 и Jedi.

27
задан Johan - reinstate Monica 23 July 2012 в 20:18
поделиться