Лучшие практики для защиты общедоступного веб-приложения Java Spring-Boot - PullRequest
0 голосов
/ 04 января 2019

У меня есть общедоступное веб-приложение на Java, созданное с помощью Spring Boot. Я готов выпустить его в производство и хотел бы получить несколько советов о том, как обеспечить его максимальную безопасность.

Это в основном поисковая система, которая использует Apache Lucene в резервной копии и много javascript в клиентской части. Я планирую развернуть его в Amazon Web Services, используя локальный компьютер в качестве среды резервного копирования / тестирования.

Пользователи могут искать и просматривать данные. Интерфейс вызывает конечные точки REST, используя Javascripts XMLHttpRequest, чтобы запросить у бэкэнда контент, а затем отображает его для пользователя.

Приложение полностью общедоступно, и пока нет аутентификации пользователя.

Приложение также сохраняет запросы пользователей к базе данных для целей отслеживания.

Вот что я сделал, чтобы обезопасить его:

  • Убедитесь, что конечные точки REST полностью проверяют правильность параметров, заданных им в запросах.

Что я планирую сделать:

  • Использование HTTPS.
  • Проверка того, что любой запрос на размещение или URL-адрес имеет разумный размер.

Что я собираюсь добавить:

  • Ограничение количества запросов, которые пользователь может сделать за данный период времени. (не уверен, что Spring-Boot уже имеет возможность сделать это, или я должен реализовать это сам)
  • Используйте некоторую схему ключей API, чтобы убедиться, что мои конечные точки доступны только моему внешнему интерфейсу. (не уверен, что это эффективно, и пока не знаю, как это сделать).

Есть что-нибудь еще, что я должен подумать сделать? Имеют ли смысл перечисленные выше вещи?

Буду очень признателен за любые советы по этому вопросу.

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