Авторизація: Безпека.



Що то мені нині писати стало не про що. І ось вирішив написати статтю про авторизацію. Так, тут, напевно,
нічого цікавого... Але тут дуже багато нюансів з безпеки.
Ну чтож ближче до справи. На початку я вам наведу псевдокод авторизації:
Знаходимо id користувача в бд...
Якщо (у кукі є ім'я і пароль) то {пароль = кукі_пароль; ім'я = кукі_імя; запісиваем_кукі; функция_отображения_страницы;}
інакше Якщо (введенний_пароль правильний) {виводимо сторінку користувача... } Інакше ошібка_авторізаціі.
Є один дуже поширений метод злому облікового запису. На комп'ютері жертви копіюємо кукі, замінюємо свої cookies і
заходимо під іменем користувача. Але є дуже хитрий спосіб захисту від цього. Під час запису імені та пароля в куки
ми також генеруємо випадкове число (rand ()) і записуємо його в куки і в базу даних. При вході користувача
порівнюється номер куки і номер в бд. Якщо вони рівні, то користувач заходить до свого облікового запису (+ генерується нове число).
Коли хакер вкрав кукі (і якщо користувач після цього заходив у свій акаунт) він не зможе зайти тому, що номер
не буде збігатися. Але якщо користувач не входив після крадіжки куки? Тоді хакер зможе без проблем зайти.
Є ще один спосіб. При записі в кукі записується IP користувача. При вході виглядає IP в куках. Якщо воно дорівнює IP
користувача, то тоді відображається сторінка. Тоді хакер теж ніяк не зможе зайти на сайт. Але є одне АЛЕ. Він може
будь-яким способом здогадатися, що в якийсь змінної в куках зберігається IP і помістити свій (ну, звичайно, IP зашифрований,
але він сам може легко зашифрувати його, наприклад, функцією md5. Але ви можете відразу пароль шифрувати кількома функціями.
Наприклад md5 (base64_encode (md5 (base64_encode (рядок )))). Хакеру буде важко дізнатися, як саме зашифровано. А хакери, запам'ятайте,
дуже ледачі. Вони витрачати час заради цього не будуть.). А ще, якщо хакеру моторошно пощастить, у нього виявиться той самий IP. Але
тут вже треба мати саму рідкісну удачу...
Я вам раджу використовувати обидва ці методу (врахуйте директиву register_globals[1]). Записуйте їх обидва в
куки і порівнюйте їх обидва!
Але, а якщо хакер знає на якому сайті побудована велика база даних з хешірованнимі паролями (або вона є у нього самого)?
Він зможе туди вписати хеш-суму і йому видасть пароль. Щоб захиститися від цього існує таке поняття як "сіль" (або "сміття").
До хеш-сумі приписується будь-якої безладний текст (наприклад, rese352sg22p). Тоді коли хакер введе хеш-суму він отримає
неправильний пароль (або взагалі нічого не отримає). А ви коли будете перевіряти пароль з куки прибирайте всю сіль.
Удачи!



  • Бережися шахрая: огляд популярних лохотронів.
  • Безпека в інтернеті
  • Дієві техніки захисту За від злому