Я хочу защитить свое приложение от атак SQL Injection.Prevent Sql Injection (Java)
Первый вопрос: Что это лучший способ сделать это?
Первый способ: преобразовать каждый запрос JSon здесь:
public JsonObject requestToJson(HttpServletRequest request) throws UnsupportedEncodingException{
request.setCharacterEncoding("UTF-8");
StringBuffer jb = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null)
jb.append(line);
} catch (Exception e) { /*report an error*/ }
return new JsonParser().parse(jb.toString()).getAsJsonObject();
}
Если это лучший способ, чтобы предотвратить его здесь, то второй вопрос:, как сделать это здесь?
Второй способ: Это можно сделать с помощью уровня Hibernate. Второй вопрос: как это сделать?
Каким образом преобразование запроса в JSON предотвратит внедрение SQL? Как вы думаете, почему HIbernate уязвим для SQL Injection? –
нет, преобразование в json не препятствует инъекции, конечно. Я имею в виду, когда я конвертирую каждый запрос в json, я могу поместить эту проверку в эту функцию. – annoirq
Я новичок в спящем режиме. Я использую несколько способов генерации SQL: JPARepository, CriteriaBuilder и HQL. Мой вопрос: «это уже предотвращает SQL Injection»? – annoirq