2013-03-17 3 views
2

Я разрабатываю игру с разделенными и изолированными юниверсами (например, ogame для тех, кто знает эту игру). Один игрок (учетная запись) связан с одним юниверсом, но один игрок (физический) может создать одну учетную запись для каждой юниверсы.Java realm и secure request

Таким образом, игрок может войти в несколько юниверсов и переключить вселенной, когда он играет.

Для этого я создал класс Authentication, в котором хранился id зарегистрированного игрока и имя юниверса (которое является именем схемы в моей базе данных PostgreSQL).

Таким образом, объект Authentication представляет собой зарегистрированный игрок. Для управления ролями приложений я использую настраиваемую область, которая собирает только id и имя юниверса (из моего объекта Authentication) для обработки запроса SQL и получения имени группы для преобразования его в роли.

Все эти меканизмы работают нормально.

Мне интересно, действительно ли это сделано для этого? Может ли злоумышленник отправить запрос в мою сферу и ввести в его запрос id и имя юниверса для непосредственного процесса проверки подлинности? Поскольку мне не нужно ни пароля, ни имени пользователя (ранее в моем приложении для создания объекта Authentication), такой вредоносный запрос, вероятно, будет работать.

Итак, мой вопрос только в том, чтобы узнать, может ли запрос в мое царство быть сделан вне моего приложения Java (или моего сервера Glassfish)?

+0

С Firefox и Firebug мы не видим запрос, отправленный в мое царство. Означает ли это, что никто не может видеть, как информационные материалы отправляются в мою сферу для обработки аутентификации? Ty –

ответ

1

Предполагая, что запрос происходит за пределами приложения и исходит от клиента, тогда, если вы не подтвердите имя пользователя и пароль, возможно, кто-то может сделать запрос за пределами вашей заявки и нарушить вашу безопасность. Вы должны потребовать передачу имени пользователя/пароля во время представления области/юниверса и в это время подтвердить, что пользователь имеет право на запрос, который они создают. Не просто убедитесь, что имя пользователя/пароль действительны, но убедитесь, что они зарегистрированы для юниверса, в который они входят, и областей/ролей, к которым они пытаются получить доступ. Если вы этого не требуете, вы открываете себя для атак.

Firefox и Firebug приятно, но он не показывает вам необработанные запросы. Чтобы действительно видеть запросы и что происходит, вы должны использовать пакетный сниффер, например Wireshark. Если вы видите запрос там, то вы уязвимы. Также убедитесь, что имя пользователя/пароль зашифровано и не доступно для просмотра в обычном тексте, в противном случае злоумышленники могут извлекать учетные данные пользователя, обнюхивая провод.

Если вся обработка происходит на стороне сервера и не возникает запрос клиента (и вы ничего не видите в Wireshark на стороне клиента), тогда вы, вероятно, будете в безопасности.

+0

Я знаю, что это, вероятно, «странный» способ аутентификации пользователя, но моя цель - разрешить пользователю подключаться в одно время к многочисленным учетным записям и, таким образом, благодаря выпадающему списку, переключать учетную запись без выхода из системы/входа снова. Я буду проверять как связанные пакеты с Wireshark, и если у меня возникнут какие-либо сомнения, я буду реорганизовывать свой код. спасибо –

 Смежные вопросы

  • Нет связанных вопросов^_^