Мне нужен шаблонный движок, включенный в JDBI (3). Кажется, мне это нужно потому, что у меня есть операторы, которые охватывают несколько баз данных (на одном сервере, через одно и то же соединение), и имена этих баз данных должны поступать из пользовательского ввода.
Я ужасно боюсь передачи пользовательского ввода каким-либо образом, формой или формой в базу данных, кроме как через связанные параметры. Как я понимаю шаблонную реализацию, она по необходимости воздерживается от защиты, предоставляемой связанными параметрами.
Я беспокоюсь, что наивные средства защиты от злонамеренного ввода, такие как if (dbName.contains(...
или dbName.replaceAll(...
, в лучшем случае неадекватны.
Полагаю, у меня есть два вопроса: подходит ли это для этого, и если да, какие шаги можно и нужно предпринять, чтобы минимизировать вектор атаки, который открывает использование шаблонов в сочетании с пользовательским вводом?