Сканирование Java Veracode - ложное срабатывание при внедрении SQL - PullRequest
0 голосов
/ 29 ноября 2018

Мы получаем «CWE-89: неправильная нейтрализация специальных элементов, используемых в команде SQL (« SQL-инъекция »)» в коде Java:

    private static void doSomethingWithDB(int queryFetchSize, String sql, Object... params)
        try {
            Connection connection = ...

            PreparedStatement statement = connection.prepareStatement(sql);
            statement.setFetchSize(queryFetchSize);
            for (int i = 0; i < params.length; i++) {
                statement.setObject(i + 1, params[i]);
            }
            ResultSet resultSet = statement.executeQuery(); //this is where Veracode reports error
        ....

передача SQL извне - не лучшийпрактика проектирования, но в данном случае это нормально (метод частный, запросы SQL находятся под нашим контролем).

Как сделать Veracode менее параноидальным в этом случае?

...