У меня есть общедоступное веб-приложение на Java, созданное с помощью Spring Boot. Я готов выпустить его в производство и хотел бы получить несколько советов о том, как обеспечить его максимальную безопасность.
Это в основном поисковая система, которая использует Apache Lucene в резервной копии и много javascript в клиентской части. Я планирую развернуть его в Amazon Web Services, используя локальный компьютер в качестве среды резервного копирования / тестирования.
Пользователи могут искать и просматривать данные. Интерфейс вызывает конечные точки REST, используя Javascripts XMLHttpRequest, чтобы запросить у бэкэнда контент, а затем отображает его для пользователя.
Приложение полностью общедоступно, и пока нет аутентификации пользователя.
Приложение также сохраняет запросы пользователей к базе данных для целей отслеживания.
Вот что я сделал, чтобы обезопасить его:
- Убедитесь, что конечные точки REST полностью проверяют правильность параметров, заданных им в запросах.
Что я планирую сделать:
- Использование HTTPS.
- Проверка того, что любой запрос на размещение или URL-адрес имеет разумный размер.
Что я собираюсь добавить:
- Ограничение количества запросов, которые пользователь может сделать за данный период времени. (не уверен, что Spring-Boot уже имеет возможность сделать это, или я должен реализовать это сам)
- Используйте некоторую схему ключей API, чтобы убедиться, что мои конечные точки доступны только моему внешнему интерфейсу. (не уверен, что это эффективно, и пока не знаю, как это сделать).
Есть что-нибудь еще, что я должен подумать сделать? Имеют ли смысл перечисленные выше вещи?
Буду очень признателен за любые советы по этому вопросу.