За последние 24 часа нас посетили 16523 программиста и 1678 роботов. Сейчас ищет 861 программист ...

распространенные атаки и защита от них

Тема в разделе "PHP для новичков", создана пользователем Magnum, 8 авг 2016.

  1. Magnum

    Magnum Активный пользователь

    С нами с:
    19 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    Привет мастера. У меня есть несколько вопросов по поводу защиты сайта.
    Я до конца не понимаю, что такое "дыры", "баги", "уязвимости". Примерно понимаю что и как, но что-то мне кажется что моё понимание далеко от истинного его значения)

    Как я понимаю, дыры в скрипте и уязвимости, это одно и то же. Это в основном - нефильтрованные данные, вызов скриптов "изнутри" моего сайта и тд
    Баги - это ошибки логики скрипта (возможность удалять данные, не имея нужного уровня доступа - администратор, накрутка каких-то показателей)
    Если я не прав, то поправьте пожалуйста) Но это вторая тема, которая меня беспокоит.

    Главный повод создания темы, это узнать, правильно ли я пишу код, а точнее безопасно, и без уязвимостей.
    Я фильтрую все данные, которые выводятся,
    числа пропускаю через функцию intval
    при добавлении в бд использую real_escape_string
    при загрузке файлов от пользователей, изменяю их имя
    отключая выполнение скриптов в директории файлов
    при каждом запросе пользователя, проверяю его значение cookie

    И вот всё равно, часто вижу темы о взломах сайтов, и мне становится не по себе. Страшно, что я чего-то не знаю, и страшно, что моя работа, над которой так потеешь просто уйдёт в руки какому-то нечестному человеку:cool:. И вот хотелось попросить у вас ссылку на статью, где описаны основные виды уязвимостей, хочу сейчас сделать уклон на повышение безопасности скрипта. А хотя, я думаю там одной статьи будет мало, там наверно целую книгу нужно;)

    Всё это затевается ради реализации автоматического вывода вебмани с моего сайта. Тут и за слитый скрипт было бы обидно и за слив денег с моего кошелька.

    Простите, что так много текста, но надеюсь, что вы дочитали до конца, спасибоo_O
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Баг это ошибка алгоритма в целом. Выходные данные не соответствуют ожиданию. Лечится юнит-тестами.
    Дыра/Уязвимость - баг, позволяющий провести атаку на алгоритм, и поиметь несанкционированный функционал.
    Защищаться от багов и уязвимостей нужно нормальной головой - знаниями алгоритмизации в целом, и стеком технологий, с которыми работаешь в частности.

    По сути, самые популярные баги/уязвимости - это инъекции. Откуда они растут? Прально, от того, что программист может поверхностно и знает язык структурированных запросов, но не догадывается о том, что в текстовую переменную можно напихать бреда и атаковать сайт. Всякие икс-эс-эсы - от непонимания того, что может натворить та последовательность символов, которую клиент отправляет в качестве сообщения на форуме, в качестве логина, и тому подобное. Эксплойты через загрузку файлов - от непонимания того, как работает связка веб-сервера с генератором трафика. И так далее.

    Ты часто видишь сообщения о взломах сайтов. Ок. Каких сайтов? Которые какой-то школьник наваял на коленке? Ну дык читай выше про маленький скил допускающий уйму дыр. На сайты крупных компаний? Ну это уже отдельный бизнес по атаке таких жертв. Там уже немного другие технологии атакуются, нежели веб-сервер. Там сам сервер - железяка или логически (виртуальный) атакуется. Идет подбор пароля от шела, от СУБД, если она висит открытым портом, от фтп, если кто-то еще не отказался от этой технологии. Это уже выходит за рамки знаний пхп-программиста, так что не переживай.

    Впрочем, бывают и забавные случаи. Например, слитая поисковикам база СМСок. Кто помнит какой из ОпСоСов это был - мегафон или мтс? В общем прикольно было. Это был баг уровня "уязвимость".

    И последний момент, который нужно упомянуть. Это уязвимости стороннего софта и/или фреймворков, которые используются для обслуживания запроса. Такой софт нужно стараться держать в актуальном состоянии и надеяться, что авторы своевременно узнают и патчат найденные дыры. В пример тебе - пхпмайадмин и какой-нибудь вордпресс/джумла/другой_популярный_движок. Какие-то дыры давно были найдены, патчи выпущены, но школьник, который писал тебе сайт, вечно болеет и к бабушке на дачу ездит. Да и вообще ему приятнее девок за сиськи помять, чем следить за когда-то сданным сайтом. В итоге злодеи твой хост прощупывают, находят нужный софт и в подходящей версии, применяют известные эксплойты и вуа-ля - ты уже либо спам рассылаешь, либо вирусы, либо порнушкой людей радуешь. И может быть даже больше не являешься владельцем своего сайта. Или того хуже - сервера.

    В общем гуглить и читать, развиваться, и следить за разными си-ви-и-базами - вдруг там что-то про тебя скажут.
     
    denis01, Magnum и mahmuzar нравится это.
  3. Magnum

    Magnum Активный пользователь

    С нами с:
    19 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    спасибо большое за столь подробное объяснение) пошел гулять по гуглу ;)
     
  4. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    :D
    --- Добавлено ---
    @Magnum, не забудь лайкнуть)
     
    Magnum нравится это.
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    @Magnum, в твоём списке не заметил html_special_chars при выводе
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    лэст бат нот лист. Это уязвимости, про которые ты узнаёшь постфактум и нихрена сделать толком не можешь. Некоторые просто забивают.
     
  7. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @igordata ну постфактум это когда к бабушке на дачу. А если ты сам мониторишь, или нанятые тобой аутсорсеры не засиживаются в дотке - про уязвимость прослышать можно и до фактической атаки на конкретный ресурс. И понять планы оригинальных авторов на выпуск заплатки. Или даже потратить время на выпуск собственной заплатки и предложение её авторам. Ну или по крайней мере пролатать свой код. Но и "просто забивают" тоже имеет место быть. Увы. Причем, как авторы софтинки, так и потребители.
     
  8. pinokio

    pinokio Новичок

    С нами с:
    25 июл 2016
    Сообщения:
    160
    Симпатии:
    6
    @Ganzal Ты как воспитатель в садике - "Ая-Яй! Не пейте дети воду из лужицы, козлятами станете! "
    @Magnum там не всё так страшно, и не используй куки, лучше заюзай сессии, бери на контроль все входы и выходы из скрипта, чтобы чё попало сделать с ним не смогли, и не используй старые функции php типа mysql запросов, есть mysqli и pdo, а также подготовленные запросы очень классная штука для защиты от sql инъекций.
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    сессии работают через куки :D канэц!
     
  10. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @igordata ;D ну и всё же, советуют всегда сессии :D В куках так то только id сессии :)
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    точно. а почему?
     
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    что-то смысла не улавливаю... Можно на пальцах?
    я думаю он о том, что некоторые хранят логины/пароли/уиды в куках, вместо того чтоб спрятать это в сессии и заэкспозить только айдишник сессии.
     
  13. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Да написал для новичка, как для профессионала.
    --- Добавлено ---
    Мне интересно он сразу понял о чём речь или сначала загуглил...
     
  14. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @askanim что из сказанного было тяжело в понимании конкретно тебе?
     
  15. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Ganzal а я про себя тебе не чего не говорил... Мне просто кажется ты его напугал... Много инфы и всё кажется таким страшным, ну я прикинул если бы я это прочёл когда только сел за учебник...
    --- Добавлено ---
    @Ganzal просто ты как всегда суров.
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Главное правило развития - встретил новое слово - загугли.
     
    askanim и mahmuzar нравится это.
  17. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL