Как решить SQL инъекцию для Афины? - PullRequest
0 голосов
/ 12 июня 2018

Я работаю над написанием Spring Java-программы, обращающейся к данным из Athena, но обнаружил, что драйвер JDBC Athena не поддерживает PreparedStatement, есть у кого-нибудь идеи о том, как избежать внедрения SQL-кода в Athena?

1 Ответ

0 голосов
/ 12 июня 2018

Вам нужно будет отформатировать SQL-запрос в виде строки перед тем, как подготовить запрос, и включить переменные путем объединения строк.

Другими словами, добро пожаловать в программирование на PHP примерно в 2005 году!:-(

Это возлагает на вас и код вашего приложения ответственность за то, чтобы переменные были безопасными и не вызывали уязвимости внедрения SQL.

Например, вы можете преобразовывать переменные в числовыеТипы данных перед интерполяцией их в ваш SQL.

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

Я рекомендую вам оставить отзыв о проекте AWS Athena и спросить их, когда они предоставят поддержку параметров запроса SQL вих драйвер JDBC.Отправьте их по электронной почте Athena-feedback@amazon.com

См. Также этот связанный вопрос: AWS Athena JDBC PreparedStatement

...