Что я могу использовать, чтобы создать не угадываемый URL для каждого пользователя? - PullRequest
1 голос
/ 22 октября 2019

Я работаю над проектом, в котором будут пользователи и изображения профиля. Мне нужно сохранить эти изображения в папке и иметь возможность получить изображение, зная идентификатор пользователя.

Я представляю что-то вроде /images/profiles/{hash of user ID here}.png Идентификатор пользователя будет целым числом, например, 52 или 495

  • Какие стандарты используются для хэширования URL-адресов?
  • Безопасно ли для этой цели использовать password_hash из bcrypt?
  • Какие еще альтернативы мне использовать? есть?

1 Ответ

3 голосов
/ 22 октября 2019

Вместо использования последовательного номера вы должны сгенерировать универсальный уникальный идентификатор (UUID) и использовать его для идентификации пользователя. Тогда UUID также может стать частью используемого вами URL.

Я бы предложил UUIDv4 в вашем случае, который будет содержать 122 бита случайности. Поскольку ваши идентификаторы пользователей не должны быть общедоступными или предполагаемыми, вы должны убедиться, что используемый вами генератор UUID поддерживается безопасным генератором случайных чисел.

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

...