|
Програмування системне, прикладне, web, макро, процедурне ... на різних рівнях |
|
Параметри теми | Пошук у темі | Параметри перегляду |
01.10.2016, 13:31 #2655980 | #1 |
Як Ви зберігаєте паролі в БД?
Пишу на PHP + MySQL + Smarty + jQuery
Власне питання як Ви зберігаєте паролі в БД? прочитав цю статтю Как надо хешировать пароли и как не надо https://habrahabr.ru/post/210760/ але мене зацікавив цей
Прихований текст: комент
п.с. чи є ще такі збоченці як я, що люблять писати самому, не використовуючи CMS? |
|
Офтопів до посту: 0 Офтоп |
01.10.2016, 14:41 #2655989 | #2 |
Активний учасник
|
Відповідь: Як Ви зберігаєте паролі в БД?
Використовую приколи з хеш мд5+сіль. Плюс дописую сіль до отриманного результату
Щось таке: md5($parol.$sil)).$sil2 При цьому $sil2 - це взагалі рандомне значення, яке при перевірці обрізається. Грубо, генеруємо 20 символів основного хешу і дописуємо до нього ще 5 "лівих" символів. Отриманий результат записуємо в БД. При перевірці просто обрізаємо ті символи... $БД-5 символів Як варіант, $sil = логін.пароль. Узагалі, основним має бути захист від перебору, а не шифрування. Навряд чи хтось захоче підбирати пароль зі швидкістю 3 варіанта за добу А при спробах зайти на сторінку входу в адмінку - автоматичний бан. Востаннє редагував selb: 01.10.2016 о 14:46. |
Подякував(ла): |
Mr_RAS (01.10.2016)
|
Офтопів до посту: 0 Офтоп |
01.10.2016, 16:32 #2655998 | #4 |
Активний учасник
|
Відповідь: Як Ви зберігаєте паролі в БД?
Аналіз логів на сервері.
Зі звичайним хостингом складніше, але можна реалізувати по аналогії. Спроба входу — запис в журнал — аналіз журнала — результат. Самий примітивний приклад для підбору паролів. У разі неправильного пароля робимо в журнал запис «time() - ip». Кожні 10 хв аналізуємо журнал на кількість однакових ip за добу. Бачимо, що хтось за добу три рази неправильно ввів пароль — запис в .htaccess «Deny from $ip». Пара змін ip і вася кладе на той підбір, бо недоцільно. |
Офтопів до посту: 0 Офтоп |
03.10.2016, 11:29 #2656202 | #5 |
Відповідь: Як Ви зберігаєте паролі в БД?
По-перше, за 10 хв можна вже набрутити 100500 паролів, або навіть загнати в глибокий свап сервак зі всіма витікаючими. По-друге .htaccess не місце для блеклісту, при нормальному девелопмент воркфлоу .htaccess має наново прилетіти з системи контролю версій при деплої (або згенеруватись в процесі деплоя). А ще на кожну спробу підбору пароля буде форкатись інстанс апача зі всіма модулями щоб казати 403 - зайва розтрата ресусів. Якщо нема можливості реалізувати провірку на стороні аплікейшина - один з хороших варіантів натравити fail2ban на аналіз логів апача з фільтром URL сабміта пароля, таким чином трафіку від брутфорсера буде дропатись ще на рівні ядра і не попадати в юзерспейс (апач) |
|
Офтопів до посту: 0 Офтоп |
03.10.2016, 13:11 #2656224 | #8 |
Відповідь: Як Ви зберігаєте паролі в БД?
на стороні форми робимо підрахунок кількість навдалих спроб підряд і після 3-ї (по хорошому) блокуємо вхід для цього користувача та із цієї іп-адреси (бо ж справжній власник теж захоче увійти звідкісь) на 1, 3, 5 хв. і так далі по наростаючій... Знадобиться зовсім трохи коду щоби це реалізувати...
Ну і додати повідомлення в адмінці коли в користувача змінюється ІП-адреса входу. Під час нарізання банів потрібно ще й думати про користувача аби не перестаратися, типу бан на сутки після 1-го неправильного... Йому якось треба ж зайти... |
|
Офтопів до посту: 0 Офтоп |
03.10.2016, 16:36 #2656262 | #10 |
Активний учасник
|
Відповідь: Як Ви зберігаєте паролі в БД?
А частота перевірки обмежується лише можливостями крона. Востаннє редагував selb: 03.10.2016 о 16:41. |
Офтопів до посту: 0 Офтоп |
|
|