hurtom / toloka

Створення нової Толоки
https://gitter.im/hurtom/toloka
MIT License
55 stars 20 forks source link

Покращення хешу паролів #50

Open AIlkiv opened 7 years ago

AIlkiv commented 7 years ago

У старій толоці паролі хешувалися password_hash(md5()) і зберігалися в bb_users.user_password2 Новий рушій хешує md5(md5()) і зберігає в bb_users.user_password

Треба зроби, щоб новий рушій torrentpier хешував і перевіряв по password_hash(md5())

chief-j commented 7 years ago

Зроблю

chief-j commented 7 years ago

Наскільки я зрозумів, на толоці паролі хешовані у md5(), потім md5() захешований у password_hash()?

AIlkiv commented 7 years ago

Так

chief-j commented 7 years ago

54

yukoff commented 7 years ago

@konfuciusu У #76 стовпець user_password2 так і залишився - я так розумію, що достатньо

ALTER TABLE users DROP COLUMN user_password, CHANGE user_password2 user_password ...

за умови, що цей тікет також вирішиться?

konfuciusu commented 7 years ago

@yukoff так

yukoff commented 7 years ago

Для сумісності з міграцією старої схеми пропоную робити так:

konfuciusu commented 7 years ago

@yukoff мені здається, ви не так зрозуміли. В страій базі вже використовується password_hash(), це issue стосується TP2.

toloka.to: password_hash(md5()) TP2: md5(md5())

План: змінити md5(md5()) на password_hash(md5()), тобто не треба зміни паролів.

yukoff commented 7 years ago

@konfuciusu Та гадаю все ж я все правильно зрозумів, бо саме про TP2 мова і йде ;)

Коли міграція запускатиметься вперше (незалежно від того, чи це база старого рушія, чи вже TP2), ще невідомо, на якій саме версії бази це відбувається (немає таблиці migrations із застосованими міграціями, т.зв. нульова версія). Щодо конкретно паролів, то ось як це буде відбуватись:

Власне, весь процес створювався, аби виключити необхідність робити на 900-тисячній таблиці щось типу

SELECT user_id FROM bb_users WHERE LENGTH(user_password) = 32;

(поганенький приклад, але він гарно демонструє суть).