За последние 24 часа нас посетили 24497 программистов и 1721 робот. Сейчас ищут 1845 программистов ...

как обезопасить себя от "закладок" при аутсорсе

Тема в разделе "Вопросы от блондинок", создана пользователем orfelin, 9 июл 2011.

  1. orfelin

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

    С нами с:
    3 мар 2011
    Сообщения:
    36
    Симпатии:
    0
    вы к сожалению не понимаете о чем пишите. встречный вам совет - не мерьте всех по своему аршину.
    узкая специализация имеет место быть. и профессионалы высочайшего класа но с очень узкой специализацией тоже имеют место быть. и они не обязаны разбираться в нюнсах присущих веб программированию. Относительно быстро понять что из себя представляют теже самые sql инъекции - несомненно да. Быстро понять как их предотвращать в коде - возможн что да хотя не уверен, думаю есть такеи вариации сабжа которые мне прсто не представить и оно только с опытом приходит.
    Что то более хитропопое привести не могу ибо повторюсь в пхп я не в теме.

    Аналогично что профессионал пхп довольно быстро поймет что такое дедлок в многопоточных приложениях. Сможет ли он ыстро понять как искать и фиксить такие места в проекте - ой не уверен. Он от этого перестал быть профи в пхп? атнють.
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    SQL не является частью какого-то языка, это отдельный язык запросов. Запросы просто генерируются в любых приложениях из написанных руками строк и подставляемыми переменными. Чтобы обезопаситься от инъекции, надо проверить, откуда приходят и как обрабатываются переменные. Касательно mysql, все функции называются примерно одинаково в разных языках. Достаточно быть знакомым с синтаксисом языка.
    SQL-инъекция это еще ерунда, зачем разработчику ваша админка - из неё же нельзя систему грохнуть =) Закладки - как правило shell для выполнения любого (присланного) PHP-кода. А если вы пустили человечка под рутом, то сервер может быть сконфигурирован таким образом, что позволит php-скрипту выполнять любые системные команды.
     
  3. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    "INTO OUTFILE" :)
     
  4. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    PHP:
    1. <?php call_user_func(implode(array('m','y','s','q','l','_','c','o','n','n','e','c','t')))
     
  5. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    проблема причём настолько серьёзна, что кроме как юридически, я даже и не знаю способа защититься. nda и тому подобное.

    (если не считать способа из фильма Джей_и_Молчаливый_Боб_наносят_ответный_удар)
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    просто подобную хрень встречаешь и требуешь у разработчика раъяснений. Это не нормальный код.
     
  7. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    [vs]
    это был как пример поиска функции обращения к базе по названию. если не нравиться call_user_func, то можно $this->$method - такой код приемлем?)
    и потребовать разъяснений у разработчика можно только увидев проблемный участок. вот с вопросом об его поиске автор и обратился (как мне кажется).
     
  8. orfelin

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

    С нами с:
    3 мар 2011
    Сообщения:
    36
    Симпатии:
    0
    к сожалению в РФ физик практически накакой отвественности не несет за нарушения NDA в худшем случае пальчиком погрозят или штраф в пару МРОТ дадут. ПО крайней мере я не знаю прецидентов чтобы программисту за нарушения NDA в РФ что то было.

    описанный способ это уже как самая крайняя мера разресолвить конфликт :twisted:

    ну собственно это меня и интересоввало - практические способы оставить в коде что то не нужное чтобы потом через это ненужное сделать что то плохое.
     
  9. orfelin

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

    С нами с:
    3 мар 2011
    Сообщения:
    36
    Симпатии:
    0
    о_О опа как в пхп оказывается можно. хотя что удивляться почти во всех языках можно взять адрес исполняемой функции по ее строковому имени и вызвать ее.

    гы если при этом еще mysql_connect просто заксорить посимвольно и передавать через функцию декодировщик то в коде вообще не будет этой строки.
    хотя в таком ключе способ вызова через call_user_func будет подозрителен.
    спасибо. поставлю на заметку.
     
  10. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    http://habrahabr.ru/blogs/virus/112871/
     
  11. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    я выше ответил, что можно через $this->$method делать и даже через $func = 'var_dump'; $func('1',2);