Нужны идеи для защиты серверного процесса и базы данных на основе JMS - PullRequest
0 голосов
/ 26 января 2009

У меня есть инструмент, который распространяется бесплатно как плагин Eclipse, что означает, что я не могу отследить, кто его использует, или попросить их зарегистрироваться.

Каждый клиентский инструмент взаимодействует через JMS-брокер с одним общим сервером (написанным на Java) и может получать сообщения в ответ. Сервер подключается через Hibernate к базе данных MySQL.

В настоящее время единственным сообщением, которое отправляет инструмент, является запрос данных, и сервер получает сообщение и отправляет большую часть данных XML, представляющих элементы, клиенту, который отображает соответствующие элементы в IDE. Следовательно, я не думаю, что с сервером можно многое сделать, кроме атаки DoS.

Теперь, однако, я хочу добавить следующую функциональность: пользователь может назначить оценку конкретному элементу (идентифицированному числовым идентификатором), и на сервер будет отправлено сообщение, которое сохранит оценку как событие в таблице событий рейтинга. При поступлении следующих запросов данных средняя оценка для каждого элемента будет отправлена ​​вместе с запросом.

Моя проблема в том, что я никогда не развертывал инструмент, использующий такой публичный сервер, как этот, даже если он скрыт JMS-брокером. Какие атаки могут быть направлены против меня и как я могу их защитить?

Существует проблема DoS, и я не знаю, как ее решить.

Существует возможность инъекции, но все мои данные являются числовыми, и я не знаю, как спящий режим работает с вещами.

Есть проблема спама или фиктивного голосования, и я не могу придумать, как решить эту проблему.

Я уверен, что есть другие ...

1 Ответ

1 голос
/ 26 января 2009

Что касается фиктивного голосования, это небезопасно (т. Е. Не будет приемлемым для избирательных целей!), Но это простой механизм:

Создайте GUID на сервере, сохраните его в соответствующей таблице и отправьте клиенту. Когда клиент голосует, он отправляет обратно GUID, который сравнивается с базой данных. Если GUID действителен, примите голосование и удалите сохраненный в БД GUID.

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