Какие уязвимости нужно закрыть кроме иньекций и шелл?

Тема в разделе "Защита и взлом", создана пользователем verfaa, 6 апр 2014.

Статус темы:
Закрыта.
  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    375
    Симпатии:
    41
    Имеется небольшой сервис, который я написал полностью сам.
    Очень хочется максимально защитить его от возможного взлома и хаков.
    На сайте пользователи заливают картинки и фотки, поэтому вот что сделано к данному моменту:

    - макcимально защитился от шеллов, я ранее уже создавал тему https://www.nulled.cc/threads/235106/
    - в sql запросах все переменные закрыты в зависимости от типа - числовые ф-цией intval(), остальные mysql_real_escape_string()
    - естественно явных уязвимостей вида eval($_GET[cmd]); нет
    - используется выделенный сервер, соседей в виде ломанных cms древних версий нет.
    - PHP 5.4.12 вреде не старая

    Вопрос в том, какие ещё уязвимости проверить и закрыть? Через что ещё можно сломать сайт, кроме как шеллом и иньекцией?
    Как защитить сервер, там CentOS release 6.3 (Final) может какой софт необходимо поставить? Вот думаю на днях ssh порт поменять, что ещё можно сделать?
     
    donbaron нравится это.
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.450
    Симпатии:
    1.240
    Защита системы - это не статичное состояние, но динамический апдейт в соответствии с текущим положением дел.
    Основные угрозы в самом общем виде - http://habrahabr.ru/post/217275/
    Например, около года назад с btc-e успешно сливали балансы слишком доверчивых пользователей с помошью простейшей XSS (url реальной странички btc-e + js код в этом же url`е) - http://habrahabr.ru/company/pentestit/blog/211494/ (рекомендации по защите php-приложений от XSS-атак)

    Для выявления протестируй свой сервис локально (на лайве это может создать излишнюю нагрузку) популярными сканерами - http://habrahabr.ru/company/pt/blog/187636/ может что-то всплывёт
     
    Марк111, verfaa и donbaron нравится это.
  3. Simply

    Simply Писатель

    Регистр.:
    11 янв 2008
    Сообщения:
    7
    Симпатии:
    4
    Кстати, лучше в таких целях все же использовать именно prepared statements, у эскейпа есть свои нюансы...

    В дополнение к ссылкам предидущего автора я бы еще добавил свежую http://habrahabr.ru/post/221503/ там как раз и про порт SSH и про FTP(S) упомянуто...
     
    verfaa нравится это.
  4. denverkurt

    denverkurt Denve®

    Регистр.:
    23 дек 2013
    Сообщения:
    640
    Симпатии:
    368
    желательно фильтровать все $_POST, $_GET переменные. если переменная должна быть числом то и объявлять переменную числовым форматом, а не пускать на самотек
    в папках загрузок файлов и фоток через .htaccess запретить выполнение php скриптов
    ну и регулярное чтение логов доступа и ошибок
     
  5. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    375
    Симпатии:
    41
    Какие именно нюансы? Пишут что при современной версии mysql фукция mysql_real_escape_string() абсолютно на 100% защищает БД. Там пара сотен запросов точно наберется, не буду же я их переписывать все, у меня на это + отладка долгие недели уйдут, т.к. я с prepared statements не работал никогда.

    denverkurt, я писал в теме, что все переменные обработаны ф-ями intval() и mysql_real_escape_string()
     
  6. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    381
    Симпатии:
    236
    Я еще себе проверку IP поставил у капчу. Капчу от брута, тк вот http://blog.airee.ru/2014/03/blog-post_1679.html На первом месте словарные пароли, а это все сводится к бруту. Берешь сотню логинов, пять сотен паролей ( словарные чаще подходят ), и проверяешь все пары. А проверку IP на всякий случай. $ip = explode( '.', $_SERVER['REMOTE_ADDR'] ); $ip = $ip[0] .'.' . $ip[1]; Сделал капчку как тут http://habrahabr.ru/post/120615/, но там можно её обойти. Надо еще if( isset( $_POST['captcha_code'] ) ), тк можно все куки удалить и в POST captcha_code не отправлять. Там нету кода и тут -> true -> капча введена верно
     
  7. audit-saitov001

    audit-saitov001 Создатель

    Регистр.:
    14 июл 2015
    Сообщения:
    16
    Симпатии:
    1
    Например, авторизация в админке может быть с дырой.
    Или если файл заливается без обработки (ресайз, ватермарк) и есть проверка только по расширению - то при некоторых настройках сервера можно этот фильтр обойти....
    Еще не упомянуты XSS, произвольное чтение файлов т. п.
    Вообще-лучше доверить аудит кода профессионалу и спать спокойно.
     
Статус темы:
Закрыта.