Достаточно ли безопасно поместить SQL-запросы в файл sql.properties для приложения SpringBoot? - PullRequest
0 голосов
/ 05 января 2019

Я экспортирую свои запросы SQL в файл .properties с помощью приложения SpringBoot с Java 8.

Я просто хочу знать, насколько безопасно помещать все мои запросы в файл .properties

Внутри папки ресурсов, у меня есть файл с именем questions.properties, внутри файла, который у меня есть ниже пунктов

query1=EXEC [NHistory] @vchrId = ?
query2= EXEC [CDetails] @vchrID = ?
query3=EXEC[LDetails]

1 Ответ

0 голосов
/ 07 января 2019

Не делай этого.

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

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

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

Вместо этого создайте правильные репозитории, используя существующие функциональные возможности Spring Data для создания пользовательского SQL, который также не подвергает вас внедрению SQL (https://www.baeldung.com/spring-data-jpa-query).

@Query(value = "SELECT * FROM Users u WHERE u.status = ?1", nativeQuery = true)
User findUserByStatusNative(Integer status);

Spring Data также избавляет вас от необходимости вручную JDBCTemplate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...