Защита от инъекций

Discussion in 'Песочница' started by user6334, 25 Mar 2016.

  1. user6334

    user6334 Member

    Joined:
    29 Jun 2015
    Messages:
    297
    Likes Received:
    17
    Reputations:
    12
    Объясните такому нубу как я: для чего придумали всякие там WAF, когда от скули можно защититься очень даже просто: если параметр цифровой, проверять как int, если строчный, то фильтровать кавычки. Ведь пока не закроешь в начале кавычку, какой смысл писать запрос
     
  2. t0ma5

    t0ma5 Reservists Of Antichat

    Joined:
    10 Feb 2012
    Messages:
    832
    Likes Received:
    805
    Reputations:
    90
    фильтровать кавычки, а если тебе нужно чтобы в запросе можно было использовать кавычку)? например это поиск по контенту на сайте или по сообщениям пользователей, или по их никам
     
    _________________________
  3. user6334

    user6334 Member

    Joined:
    29 Jun 2015
    Messages:
    297
    Likes Received:
    17
    Reputations:
    12
    Значит тогда я буду заменять кавычку на литерал и в таком виде хранить в Бд, при воспроизводстве на сайте литерал будет отражаться как кавычка
     
  4. t0ma5

    t0ma5 Reservists Of Antichat

    Joined:
    10 Feb 2012
    Messages:
    832
    Likes Received:
    805
    Reputations:
    90
    норм :) тогда я хз зачем waf)))
    все проблемы от того что люди всё усложняют
    возможно излишняя кастомизация и костылизация породила когда то waf
     
    _________________________
  5. DarkCaT

    DarkCaT ~Some Member~

    Joined:
    14 Mar 2016
    Messages:
    33
    Likes Received:
    13
    Reputations:
    17
    Ммм а можно пример с такой защитой, которую описали, хотелось бы покрутить) Ну и да waf не только от скуль защищает)
     
  6. t0ma5

    t0ma5 Reservists Of Antichat

    Joined:
    10 Feb 2012
    Messages:
    832
    Likes Received:
    805
    Reputations:
    90
    хотя сейчас подумал, допустим заменили кавычку на литерал там или на что удобно
    а в дальнейшем энное количество кода работает с этими данные, тогда везде нужно учитывать что данные заменены
    то есть была например регулярка /[a-b']+/ как пример для поиска ника( допустим в нике можно использовать ' ) и тут внезапно она не сработает, а кода такого может быть много
    по сути опять порождение костылей
     
    _________________________
  7. private_static

    Joined:
    19 May 2015
    Messages:
    118
    Likes Received:
    74
    Reputations:
    22
    waf как и фильтрация не панацея от дыр, они были есть и будут
    а waf ставят лишь для усложнения эксплуатации этих самых дыр
     
  8. BabaDook

    BabaDook Level 8

    Joined:
    9 May 2015
    Messages:
    1,015
    Likes Received:
    1,363
    Reputations:
    43
    Я не знаю код, однако если код написан верно то и waf не нужен.Ну ,как-то так, разве что от ДДос, но это сов7 другая история
     
  9. user6334

    user6334 Member

    Joined:
    29 Jun 2015
    Messages:
    297
    Likes Received:
    17
    Reputations:
    12
    Вообщем со всеми вами я соглашусь. Могу пока расширить некоторые доводы. Итак, выходит что да, если мы ставим костыль в одном месте, то эти костыли должны быть понапиханы везде. То бишь поставил 99 костылей, а про 1 забыл - всё, получи инъекцию. Далее, сайт постоянно дорабатывается, меняется, уследить за костылями сложно. В итоге, человеческий фактор как всегда. Что проще, нанять 10 тестировщиков или поставить WAF? Думаю, понятно
     
  10. user6334

    user6334 Member

    Joined:
    29 Jun 2015
    Messages:
    297
    Likes Received:
    17
    Reputations:
    12
    Какой тебе пример? Там нет инъекции. Кстати, вот ещё что могу сказать, читал у одного разраба, дескать сейчас уже так не делают сайты, как раньше, и переменные данные берутся не только из параметров. Эта сфера индустрии сейчас настолько усложнилась, что фильтровать все данные как параметры нереально. Объясню проще. Петя пишет: ha. Вася пишет: r( Маша пишет 77 Рита улыбается. Потом при каком то супер выборочном поиске, воссоединяется все в некий результат, и отправляется на выборку данных по этому признаку.... Where custom = char(77). Нихрена себе, откуда буква M???))) Ну, это весьма маловероятно, скорее всего выскочит ошибка синтаксиса. Программист снимет костыль, чтобы её убрать потому что сформировалась она динамически. Т.е. В современных приложениях тенденция может идти к тому, что данные комбинируются динамически, и параметры в частности. Т.е.принимая параметр от пользователя сегодня мы не знаем, как он будет использован завтра
     
Loading...