Риск внедрения SQL-кода при подключении к AS / 400 с использованием JTOpen - PullRequest
2 голосов
/ 04 марта 2011

Мы используем JTOpen для подключения к нашей машине AS / 400, и я пытаюсь решить проблему уязвимости внедрения SQL-кода при использовании этого типа интеграции.

Обратите внимание, что мы используем толькопрограммная часть вызова в API - не соединение jdbc.

Я не программист RPG и не знаю, каковы риски с точки зрения внедрения SQL-кода в код, и при этом я не знаюесли API-интерфейс JTOpen останавливает подобные атаки.

После небольшого поиска я обнаружил, что, тем не менее, можно делать SQL-инъекции в программы RPGLE, когда они не используют хранимые процедуры.Поэтому мой вопрос заключается в следующем: возможно ли это сделать через API JTOpen.

Нужно ли программно проверять SQL-инъекции во всех вызовах API JTOpen?

Ответы [ 2 ]

1 голос
/ 04 марта 2011

Я не Java-гуру, поэтому я просто буду использовать здесь псевдо-код.

Исходя из моего понимания, вы можете использовать динамический SQL, но просто не объединяйте оператор where вместе.

Так что string = "select * from table where key = " + id совершенно неправильно.Однако вы можете сделать что-то похожее на

string = "select * from table where key = @id";
build connection
add parameter to assign value to @id
execute command

Лучшим вариантом будет использование хранимых процедур.

1 голос
/ 04 марта 2011

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

Если программы, запущенные на хосте, не используют динамический SQL, тогда риск вообще отсутствует.

...