|
2 / 2 / 1
Регистрация: 08.02.2015
Сообщений: 186
|
|||||||||||
Как защитить от взлома сессии и куки?23.09.2015, 17:13. Показов 7505. Ответов 24
Метки нет (Все метки)
Здравствуйте, подскажите как защитить от взлома сессий и куки.Везде ищу не могу найти.У меня есть код но я не думаю что он безопасный
0
|
|||||||||||
| 23.09.2015, 17:13 | |
|
Ответы с готовыми решениями:
24
Как защитить ПО от взлома. Как защитить программу от взлома? Как защитить сайт от взлома |
|
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
|
|
| 23.09.2015, 19:00 | |
|
А зачем в сессии нужен логин и пароль?
0
|
|
|
6 / 6 / 5
Регистрация: 29.01.2015
Сообщений: 467
|
||||||||
| 23.09.2015, 19:08 | ||||||||
0
|
||||||||
|
Заблокирован
|
||||
| 23.09.2015, 22:43 | ||||
|
Нужно отказаться от опции rememberMe на сайте и время от времени регененрировать id сессии. От пионэров слегка обезопаситесь.
0
|
||||
|
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
|
|||||||||
| 24.09.2015, 09:56 | |||||||||
Сообщение было отмечено viktor1998 как решение
РешениеВы же не делаете систему для банка? В базе -(таблице users) храним:уникальный id записи, логин пользователя, хеш пароля пользователя, соль (случайная комбинация, например !34Hdff^7), идентификатор сеанса. При создании нового пользователя, где пользователь указывает логин и пароль - создаем случайную соль. С использованием этой соли и введенного пользователем пароля создаем хэш пользователя, используя алгоритм и функцию необратимого шифрования. Например
При входе в систему пользователь вводит логин и пароль. Система вычисляет хеш пароля и ищет совпадения в БД - таблице users. Ищет такой хэш и имя пользователя. Если находит - вносит в поле идентификатор сеанса таблицы, в запись этого пользователя случайное значение (например @3232!sddf). Это же значение вносит в куку пользователя. Далее ищет значение из этой куки пользователя в БД. Нашли - мы знаем кто это. Иначе - неизвестный пользователь, гость. Обратите внимание, что в куке хранится значение никак не компроментирующее пароль. Если куку похитит злоумышленник, то он получит временный доступ. И не получит никакой информации об логине/пароле. Вообще никакой. Более того, как только пользователь выйдет и снова войдет в систему - злоумышленник потеряет доступ. Если злоумышленник получит доступ к БД и получит хэш пароля, то он его не расшифрует. И никакие таблицы, подбор ему не помогут. Это гарантируется солью вида !34Hdff^7. Долго перебирать (смотри теорию вероятностей+комбинаторику). К тому же злоумышленник не знает алгоритма. А алгоритм может быть любой. Значит злоумышленнику нужен доступ к файловой системе. Имея такие доступы - перебирать пароли не имеет смысла. Добавлено через 4 минуты А вы так раз - бессмысленно. Почему не бессмысленно, я написал выше. А ещё есть понятие криптостойкости.
0
|
|||||||||
|
Заблокирован
|
||||
| 24.09.2015, 10:06 | ||||
|
Добавлено через 50 секунд Добавлено через 8 минут sha(md5(x($_POST['pass_1']))); ни чем сложнее для подбора чем просто sha('stroka'); . Потому что нам не нужно подбирать строку. нам нужно подобрать хеш... который всегда 256 битный.. независимо от того сколько раз вы там чегото кудато прогнали
0
|
||||
|
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
|
|||||
| 24.09.2015, 10:40 | |||||
|
Не по теме:
Я вам настоятельно советую изучить криптографию. Что делать с ним будете? Скрипту нужна строка, которую по алгоритму он преобразует в хэш.И этот хэш сравнит с хэшем в базе. Скрипач...т.е. хэш нам не нужен. Вообще. Зачем вам нужен этот набор бессмысленной ерунды?
0
|
|||||
|
Заблокирован
|
|||||
| 24.09.2015, 11:03 | |||||
|
Не по теме:
как и вариантов полученных с помощью md5 без извращений. Поэтому лучше хешировать простым sha($string) вариантов будет больше, а вероятность коллизий - меньше. А еще лучше не заниматься велосипедостроительством, а воспользоваться возможностями php о которых я писал выше
0
|
|||||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 24.09.2015, 11:52 | ||
|
Очень мутная схема... Я так и не понял зачем нужна "соль"...
Сам сейчас пишу "с нуля" авторизацию. Пошел по другой схеме - после успешной авторизации выдаю юзеру РАЗОВЫЙ кллюч, абсолютно случайный, но не повторяющийся. Достаточно длинный для опасности подбора md5(rand(9999))+md5(rand(9999)); Ключ пишется в куки. И в базу "напротив" юзера. У меня для сессий отдельная таблица - туда и пишу. Вместе с датой последнего обращения (подсчет времени бездействия) и сроком автовыхода (например час, сутки или неделя). Украсть куку реально, но еще идет привязка к броузеру, ОС и IP. Если IP еще может сменится(у меня хостинг иногда переключает), то ОС+Броузер вряд-ли... ИМХО эта заготовка подойдет даже для банка... 10 минут бездействия может выбить. Но активная работа (смена страниц) продлевает сесию, но в пределах суток... можно контролировать количество одновременных сессий. Весь контроль ТОЛЬКО на сервер! Можно привязаться еще и к сессии для безопасности (я так понял что сессию тяжелее перенести, но комп/хостинг может сам ее сбросить)
0
|
||
|
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
|
||||||
| 24.09.2015, 12:07 | ||||||
|
Вся эта схема - чистой воды выдержка из криптографии и необратимости функций. Перед нами стоит задача сделать так, что бы злоумышленник по хешу не подобрал пароль. Вот даже назвали соль. Специально. Соль бросают в суп. Вы можете бросить соль в суп? Да. Это легко.А достать из супа соль? Уже проблематично. В данном случае суп - это наш хеш с солью, многочисленными приправами из md5 (вот зачем по сто раз прогоняют). И в результате мы получим наш суп - хеш. Этакую смесь из всего подряд. И черт там разберёшь, сколько соли в него кинули. А хакеру это нужно. По смеси восстановить все ингредиенты. Это нелегко (а иногда невозможно при текущих вычислительных мощностях), даже зная рецепт супа (алгоритм). (Привет криптосистеме с открытым ключом) В теории вероятности и криптографии часто приводят пример с красками. Но вроде и я привёл не плохой пример. Экспромт, между прочим. ![]() Если заинтересовало, можете почитать криптографию, криптоанализ. Про шифры, их историю. Тогда точно вот такого, как сказал a-fw
0
|
||||||
| 24.09.2015, 12:28 | ||
|
Не по теме:
0
|
||
| 24.09.2015, 13:45 | ||||
|
Не по теме:
Я вам md5 для примера показал. Для ГОСТ пишется своя функция. Но кому нужен этот ГОСТ или DES. Только американскому правительству и правительству РФ. Навыдумывали требований - шифруй им всё по ГОСТ. Я это к тому, что password_hash() придумали из за неумения грамотно пользоваться тем, что было до php 5.5. Вы случайно не знаете, почему эти гос-дураки, когда разрабатывают свои системы, не используют password_hash(), фреймворки, паттерны программирования. Линукс какой то свой юзают, мсвс всякие... Вывод такой. Есть php 5.5 и надо сделать хомяка с регистрацией - password_hash(). Нужна хорошая защита для проекта - md5 соль и прочее. Это не велосипед, а общепринятая модель. Причём уже давно. А если серьёзный проект, тогда реализация алгоритма ГОСТ/DES, https, vpn и, возможно уже не php. А password_hash(), к сожалению действительно для слабаков. 8-) Мужик у тебя есть (изолента?) надёжный хеш (голова на плечах, наработки, знания?) - на тебе мужик password_hash().:D
0
|
||||
| 24.09.2015, 14:22 | ||||
|
Не по теме:
0
|
||||
| 24.09.2015, 14:59 | |
|
Не по теме:
0
|
|
| 24.09.2015, 15:04 | |
|
0
|
|
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|||
| 24.09.2015, 21:29 | |||
|
Еще раз: 1) вы передаете мне логин/пароль в $_POST['login'] и в $_POST['pass'] из формы ввода. (не знаю можно ли этот этап перехватить, но вроде все так делают. В крайнем случае попробую https) 2) сервер сверяет ваш пароль со своей внутренней базой и если все правильно вам выдается абсолютно случайный ключ! Не привязанный ни к логину, ни к паролю. Ломать его бесполезно! В крайнем случае можно привязать к логину и числу из rand. Считается что на защищенном сервере утащить базу с логинами и md5(пароля) не возможно. 3) вы кладете этот временный ключ себе в куки. с таймером хоть на 10 лет. 4) когда надо убедиться что вы залогинены, я получаю вашу куку с ключем и сверяю с таблицей зарегистрированных. Если этот мега-ключ найден в таблице, то я знаю что вы за юзвер. (параллельно могу убедиться что ключ "не перемещали" - ip+brozer+OS) 5) в той-же МОЕЙ таблице и реальный срок окончания сессии. Через (допустим) час очередная страница при проверке авторизованности вдруг обнаружит что нет. Или (позднее) это сделает аякс-проверяльщик встроенный в таблицу. 6) когда вы хотите логАут, то просто я удаляю вашу сессию из МОЕЙ таблицы. ? ну и где здесь можно "взломать"? Брутфорс отсекается через 3-5-10 попыток на пол часа/час/сутки или капчей. Выданный вам ключ сессии для куков не несет никакой инфы, кроме логина для лучшего удержания уникальности - типа md5("вася_as0dd20dls").md5("вася_$%@02ld 90skjsdi").md5("вася_woc,wos-2-230@"). Пока не доделал основную часть(ну очень много написать надо - от админки, до отчета по сессиям), но ключ сессии можно мягко будет "подменять" во время работы (или аяксом) скрытно от пользователя хоть каждые пол часа(или 10 минут). Это помешает "унести куку флешкой" и воспользоваться "через час" или "параллельно и незаметно" на соседнем компьютере (ведь заменят лишь одному а второму забьет тревогу "устаревший ключ"). p.s. я не читал "криптографию" и даже не смог найти адекватное обьяснение механизмов авторизации "не школьного уровня" и не на чужом API(типа ВКонтактовских получили ключик от нас, а мы обеспечим вас всем остальным). Все сам придумывал или "догадывался" на основе чужих API... И готов выслушать любую критику!
0
|
|||
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
|
|
| 24.09.2015, 23:24 | |
|
Tester64, использую практически ту же схему авторизации. Интересно было бы услышать её конструктивную критику, поскольку аналогов впринципе и не вижу.
0
|
|
|
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
|
||||
| 25.09.2015, 06:57 | ||||
Для вас, похоже и придумали password_hash().Вы храните пароль в БД в открытом виде? Самое распостраненное - SQL инъекция. Реже xss атака. Погуглите. Там материала на 10 минут. А можно и глубже изучить тему и даже попробовать. Интересно же. Ещё реже ломают через - уязвимость ПО, стороннего ПО, переполнение памяти (смещение адресов). Хотите по школьному, брутфорсом? Программ миллион и все используют анонимайзеры. Но так не ломают. Уважаемые участники сообщества, тут люди хранят в БД пароли в открытом виде. Не ожидал такого. Предположу, что все логины и пароли будут успешно украдены из БД через SQL инъекцию в результате недостаточной фильтрации данных, в следствии низкой компетенции разработчика. И это не я выдумал - это прописная истина и азы.
0
|
||||
|
Заблокирован
|
|
| 25.09.2015, 07:11 | |
|
Возможно некоторые "специалисты работавшие долгие годы в сфере информационной безопасности сдипломом" осилят адаптированную статейку http://habrahabr.ru/post/194972/Хотя вряд ли, они настолько суровы что даже инструкции к языку не читают
0
|
|
| 25.09.2015, 07:22 | |
|
0
|
|
| 25.09.2015, 07:22 | |
|
Помогаю со студенческими работами здесь
20
Как можно защитить приложение от взлома?
Как защитить свое приложение от взлома и модификаций Как защитить php файл после взлома сайта? Как защитить htaccess от взлома и вживление вредоносного кода? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|