Как лучше всего обрабатывать аутентификацию через URL в PHP - PullRequest
1 голос
/ 19 марта 2009

Мне нужно иметь возможность отправлять пользователям ссылку, которая содержит зашифрованное значение, которое используется для аутентификации пользователя при посещении ссылки.

В текущем процессе используется уникальный и примерно 40-значный уникальный хеш, который затем шифруется и кодируется в base64, так что его можно безопасно передавать по электронной почте и теоретически безопасно возвращаться через URL.

Однако, поскольку это моя первая попытка сделать что-то подобное, я не учел влияние косых черт в зашифрованном значении. Это приводит к усечению значения, когда я извлекаю его из URL, что, очевидно, не будет работать, когда я пытаюсь расшифровать его.

Как это обычно достигается? Ссылки на учебники и т. Д. Всегда приветствуются.

Ответы [ 2 ]

1 голос
/ 19 марта 2009

Несмотря на то, что вы никогда не должны содержать конфиденциальные данные на странице, не требующей аутентификации, существует простое решение для решения вашей проблемы. Перед отправкой хеша сделайте URI безопасным с помощью функции urlenconde. Затем передайте его через urldecode перед обработкой.

1 голос
/ 19 марта 2009

Я думаю, что ваш метод в целом хорош, на самом деле его уже можно считать излишним. При возникновении проблем с косой чертой (и, возможно, других проблемных символов) в URL-адресе просто убедитесь, что вы используете urlencode() (а затем urldecode() на странице подтверждения) токен подтверждения.

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