Безопасность в игре 2.2.x

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

Edit: Хорошо, вопрос мабы не был достаточно ясным (я действительно сожалею об этом). Когда речь идет о безопасности, я имею в виду, что мне нужно что-то, чтобы иметь дело с учетными данными пользователей и инструментом, который позволяет мне ограничивать доступ к некоторым страницам и, в конечном итоге, к некоторым действиям отдыха в моем приложении.

Edit2: Сейчас я попробую deadbolt2, и мы посмотрим, как это работает. Но я по-прежнему обвиняю вас, ребята, поделиться своими знаниями о безопасности Play с другими:)

Ответ 1

Документация по-прежнему остается немного тусклой по этой теме, но, по сути, функции аутентификации/авторизации обычно выполняются с использованием композиции Action, которая является основой многократного кода контроллера в Play. Здесь приведен пример здесь (также связанный с docs, который должен помогите дать вам общую идею.)

Состав композиции в Play 2.2.x выполняется с помощью ActionBuilders. Они берут блок, который принимает запрос и возвращает a Future[SimpleResult]. Это позволяет строителю действий либо выполнять данный блок, либо возвращать другой Future[SimpleResult] (скажем, Unauthorized в том случае, если учетные данные пользователя не проверялись.)

В нашем приложении мы используем модуль Play2-auth для обработки аутентификации с помощью файлов cookie сеанса. Это было (просто) обновлено для работы с Play 2.2.x, но использует немного другой механизм для композиции действий (стекируемые контроллеры.) Возможно, лучше всего отработать то, как точная функциональность, в которой вы нуждаетесь, может быть выполнена только с использованием собственных средств инфраструктуры, прежде чем добавлять к ней зависимость.

Ответ 2

Я согласен с другими ответами, но просто добавлю, что я использую securesocial для интеграции с другими поставщиками auth (google, FB и т.д.), поэтому мне не нужно самостоятельно выполнять аудит. Очень легко вставать и работать.

https://github.com/jaliss/securesocial

Ответ 3

Контроль доступа, безопасность и т.д. - очень широкая тема, потому что это означает очень разные вещи в зависимости от контекста. Это может быть одной из причин, почему Play имеет небольшую документацию для нее, что также озадачило меня в начале.

В Play2 есть некоторые помощники безопасности, а именно метод Authenticated, для некоторых соображений о том, как его использовать, проверьте комментарии в исходный код. Это простой метод, который вы могли бы реализовать самостоятельно, и большинство из них. Это, по сути, просто предлагает структуру для размещения меток, которые будут проверять, проверен ли запрос, и что делать, если это не так.

Play2 также имеет некоторую криптографическую логику, которая используется для подписания файлов cookie.

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

Важно, чтобы вы изучили, как выполняются атаки, относящиеся к вашему приложению, передовые методы и т.д. Я рекомендую перейти в OWASP, в частности, OWASP Cheat Sheets. Если список чит-листов кажется пугающим, начните с OWASP Top Ten Cheat Sheet. Не обращайте внимания на большой объем информации, это очень полезное знание.