Как предотвратить повышение разрешения на Angular / Node? - PullRequest
0 голосов
/ 04 мая 2018

У меня есть дилемма авторизации на архитектуре угловых узлов:

После входа пользователь запрашивает разрешения у конечной точки REST узла. После этого клиент Angular берет его и сохраняет в LocalStorage. Это все хорошо, но я обеспокоен тем, что есть вероятность, что злонамеренный пользователь сможет найти разрешения в LocalStorage и, довольно легко, повысить свои разрешения, скажем, до allowdelete: true и так далее. Затем Angular с радостью использует это новое разрешение и позволит пользователю делать все, что он выберет (до тех пор, пока он не попадет на сервер API, где разрешение будет проверено еще раз, прежде чем оно будет выполнено).

Я рассмотрел два варианта


Вариант 1: обернуть разрешение как JWT

Это позволяет pdr-api подписать токен, чтобы мы могли проверить, не был ли он подделан.

Выбрав этот вариант, я понял, что мне нужно:

1) Всегда проверяйте токен, прежде чем доверять полезной нагрузке

2) Согласно этому сообщению SO ( JWT Verify на стороне клиента? ), проверка подписи должна происходить только на сервере.


Вариант 2: Просто в любом случае получите разрешения и не беспокойтесь об этом

Это будет известное ограничение. Риск относительно низкий, потому что даже если они могут проникнуть в неавторизованные части приложения, сервер API даже не выделит ему время суток, поскольку они не авторизованы.


.

Если я пойду с Option A, то в этот момент я мог бы просто спрашивать сервер API каждый раз, когда нам нужно разрешение, потому что это было бы похоже на нажатие на сервер для проверки токена ... верно?

Я склоняюсь к Option B. Это правильное (безопасное) решение? У кого-нибудь есть другие идеи? Аутентификация обрабатывается с помощью файлов cookie и passport.js, так что я даже не беспокоюсь об этом .... Просто авторизация.

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