Правильный способ хэширования UID с использованием PHP - PullRequest
0 голосов
/ 08 марта 2011

Я понимаю, что это может быть воспроизведением вопроса из '09 OLD LINK , но хотел посмотреть, есть ли лучший способ сделать это сейчас:

в конечном итоге у меня есть следующий URL:

www.site.com? ID = 12345 (мои идентификаторы намного сложнее).

При этом для кого-то теоретически возможно просто изменить URl и получить доступ к данным другого человека (да, я также могу запустить проверку подлинности владельца на другой стороне).

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

Ответы [ 2 ]

1 голос
/ 08 марта 2011

То, что вы пытаетесь сделать, звучит как неправильный подход, если только вы не пытаетесь слегка запутать вещи (что кажется несколько бессмысленным, если я честен).

Я был бысоблазн добавить в URL дополнительный элемент - ключ авторизации, который будет генерироваться случайным образом во время создания идентификатора и сохраняться вместе с идентификатором (предположительно в базе данных), но не будет генерироваться на основе идентификатора.(Что-то вроде md5(uniqid), вероятно, сработает.)

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

1 голос
/ 08 марта 2011

Два варианта - использовать средства шифрования / дешифрования PHP, чтобы скрыть фактический UID.Или сохраните хешированную версию UID в базе данных вместе с обычным UID.

Вы можете выполнить запрос, подобный

SELECT blah,blah
FROM table
WHERE MD5(id) = 'the query string value'

, но это не позволит использовать индексы, поэтомубыло бы лучше вместо

...
WHERE hashed_id = 'the query string value'

.

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