Хорошо ли использовать в качестве CSRF токена результат password_hash() ?

Q_BASIC

Хранитель порядка
Регистрация
30 Ноя 2013
Сообщения
516
Реакции
1.239
Приветствую,

Хорошо ли использовать в качестве CSRF токена результат password_hash() ?

Думаю, сделать csrf() и csrf_verify() один на основе секретного ключа + ip адреса + имени браузера генерирует код, другой с этой строкой проверяет.

Но по результату функции можно тип хеширования определить любому, а из этого уже можно выводы делать.

К примеру, версию PHP определить, если в разных версиях будут доступны разные алгоритмы.

Вроде и мелочь, а не приятно
 

kir9-molodoi

Гуру форума
Регистрация
31 Май 2014
Сообщения
249
Реакции
82
на сколько знаю, то csrf токен должен каждый раз обновляться с обновлением страницы, т.е. не вариант делать его статическим. Берете набор символов ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-. и рандомом формируете токен нужной длины (25 символов например), при get запросе пишете его в сессию пользователя, и куки, а при post, put, delete сравниваете
 

Q_BASIC

Хранитель порядка
Регистрация
30 Ноя 2013
Сообщения
516
Реакции
1.239
Совсем не то

1. Пасс хеш всегда возвращает разные хеши для одной строки, так что тут всё хорошо
2. Хранение токена в сессии. Открыл человек в одной вкладке форму, потом пошёл в другой вкладке сайт смотреть, где другие формы. А после чего на первой вкладке форму отправил - а ему ошибка - токен не верный

Или предлагаете для каждой вкладки токен отдельно хранить?

3. У каждой формы свой ключ, с уникальностью всё хорошо
на сколько знаю, то csrf токен должен каждый раз обновляться с обновлением страницы, т.е. не вариант делать его статическим. Берете набор символов ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-. и рандомом формируете токен нужной длины (25 символов например), при get запросе пишете его в сессию пользователя, и куки, а при post, put, delete сравниваете
 
Последнее редактирование:

Горбушка

Ищу её...
Регистрация
2 Май 2008
Сообщения
3.444
Реакции
2.524
Делай симметричным/асимметричным шифрованием... Кодируй любые значения. Получив тукин - расшифровываешь и получаешь необходимые тебе данные.

Варианты с генерацией 2 одинаковых тукинов исключены.
 
Сверху