Безопасность аккаунтов.

Discussion in 'PHP' started by Taramko0, 23 May 2013.

  1. Taramko0

    Taramko0 New Member

    Joined:
    28 Nov 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Приветствую!

    Не так давно написал сайт на php, тематику описывать не буду.
    Суть в том, что со дня открытия был большой приток юзеров, это заинтересовало хакеров, в итоге многие аккаунты были взломаны. Я знаю, что дело не в защите самого сайта и сервера. Уверен, что аккаунты ломали по отдельности, возможно с помощью брута, троянов или еще чего-то, не особо в этом шарю.

    У меня такие вопросы:
    1. Как можно отследить попытки взлома?
    2. Как можно усложнить работу взломщику? (элементарные советы, например поставить капчу и т.д.)
    3. Как можно избежать кражи сессии юзеров?
    4. Как обезопасить восстановление пароля?
     
  2. exspress970

    exspress970 Banned

    Joined:
    28 Apr 2010
    Messages:
    5
    Likes Received:
    1
    Reputations:
    0
    По моему, эти вопросы юзеры должны задавать.
    А так стандартно: максимально сложный пароль + чистка куки в браузере + обновленный АВ.
     
  3. Taramko0

    Taramko0 New Member

    Joined:
    28 Nov 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Вы не совсем поняли. Меня интересуют обычные советы, например такие: поставить капчу, восстановление пароля подтверждать по смс, при регистрации запрашивать пароль не менее 10 символов, логировать ip юзеров и т.д.
    То есть элементарные советы, как можно улучшить защиту и усложнить работу взломщикам.
     
  4. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    сам ответил на свой вопрос

    ну да, очень заинтересовало, не смеши, кому нужент твой нулячий сайт с ботами и парочкой юзеров?
     
  5. nikp

    nikp Banned

    Joined:
    19 Sep 2008
    Messages:
    328
    Likes Received:
    591
    Reputations:
    764
    Несовпадение
    Поэтому:

    М.б. уязвимость в скриптах, в т.ч. и сторонних, учетки достали из базы, или пишутся логи вводимых паролей.
    Имеется XSS, сессии ушли на сниффер.
    Могли ломать через соседей по хостингу.
    Либо часть юзеров пришли со взломанных компов.

    Минимальные рекомендации:
    - анализ логов
    - правильная настройка сервера
    - фильтрация всех переменных в скриптах (и на ввод и на вывод)

    Или провести аудит, например тут
     
  6. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Пароли в базе хранить в шифрованном виде (например хеши) , обязательно подсоленные. Можешь и несколько раз пройтись хешем (правда это снижает сложность пароля, зато увеличивает количество символов в нем...)

    Ограничить количество попыток входа с одного IP адреса

    Хранить идентификаторы сессий в отдельной таблице с указанием времени жизни сессии + учитывать "отпечатки пальцев" пользователя (все доступные данные через $_SERVER запихнуть в хеш и в поле таблице), каждый раз при инициализации сессии сверять все эти данные (ps в php можно свой обработчик сессий писать)
    Использовать дерективы session.cookie_secure, session.use_only_cookies, session.cookie_httponly - что бы предотвратить кражу сессий через XSS

    Использовать recaptha и токены в формах для защиты от ботов и CSRF.

    как правильно сказал nikp, фильтрация всех переменных.

    Для запросов к бд если используешь PDO лушче юзать bindValue с явным указанием типа. Либо использовать свою прослойку потипу как dklab dbsimple - почитай там про placeholder-ы
     
    _________________________
    #6 Gar|k, 24 May 2013
    Last edited: 24 May 2013
  7. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Gar|k
    Как увеличение числа итераций хеширования снижает сложность пароля?
     
    _________________________
  8. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Gifts был у меня допустим пароль "dfg56%(*ea469IKJGHSt63/|" - в нем a-z 0-9 и спец символы, соответственно на полный его полный перебор уйдет больше времени...

    Предположим мы сделали так md5(md5(pass));
    Теперь вместо "dfg56%(*ea469IKJGHSt63/|" у нас зашифровано 0e9c650bebe523f6b0f9ef91ffb65aa8, а это диапазон a-f 0-9 и длина 32 символа

    Например если наш пароль изначальный был 64 символа и включал в себя широкий диапазон символов с высокой энтропией, он становится 32 символьным паролем с ограниченным диапазоном символов.

    А вообще, да бред. Просто перебор изначального хеша займет меньше времени.
     
    _________________________
    #8 Gar|k, 26 May 2013
    Last edited: 26 May 2013
Loading...
Similar Threads - Безопасность аккаунтов
  1. newsql
    Replies:
    6
    Views:
    3,524