Я считаю, что веб-безопасность является очень интересной темой, и я пытаюсь научиться создавать веб-службы API и RESTful. Я читал this answer и просто имел некоторые вопросы к процессу, описанному в Way-2. Я понимаю суть Way-2, но у меня возникают вопросы на этапе 4.RESTful Authentication - Вопросы о процессе
Сначала давайте опишем переменную токена.
$token = '123';
$tokenHashed = 'abc';
$tokenEncrypted = 'xyz';
На шаге 4 мы проверили пользователь, и теперь настало время, чтобы создать маркер и связать его с пользователем в базе данных, а также отправить его клиенту. Вот вопросы, у меня есть об этом процессе:
- Маркер мы храним в базе данных, то это «хэшируются (ABC)», «зашифрован (хуг)», или «ни (123)»?
- Когда мы отправляем его клиенту, мы отправили его «хэшированные (abc)», «зашифрованные (xyz)» или «ни (123)»?
- Где этот токен хранится на клиентской машине? Я использую PHP, так ли это в переменной $ ['SESSION'] или $ ['COOKIE']? Это имеет значение? Какой и почему?
Я думаю, что он охватывает все под шагами 4, поэтому давайте перейдем к шагу 5. Одна вещь, которая касается меня в отношении шага 5, состоит в том, что он говорит: «Затем вызывающий отправляет этот токен аутентификации ...» Я ' читал, что вы НИКОГДА не передать маркер, так что сюда приходят еще несколько вопросов (предположим, клиент имеет маркер, хранящийся в любой моды ответ 2 выше говорится):
передает ли клиент маркер " hashed (abc) "," зашифровано (xyz) "или" ни (123) "?
Если они просто отправляют его обратно, как мы его отправили, то в чем смысл? Если кто-то захватывает токен в любой форме, которую мы его отправили, не всегда ли будет соответствовать тому, как мы его сохранили? Например, я посылаю USER X произвольную хэшированную строку (abc). USER Y перехватывает его и отправляет мне (abc). Моя БД говорит «abc», безопасность не работает.
Возможно, я продолжу разработку/добавление вопросов в качестве ответов. Спасибо за помощь!