За последние 24 часа нас посетили 49039 программистов и 1805 роботов. Сейчас ищут 939 программистов ...

Безопастный ли запрос

Тема в разделе "MySQL", создана пользователем metadon, 26 июн 2007.

  1. metadon

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

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Скажите пожалуйста есть ли опастность sql-инъекции

    PHP:
    1.  
    2. <?php
    3.  
    4.  function FT($FT)
    5.  {      
    6.  $FT = stripslashes($FT);
    7.  $FT = str_replace(";","/;",$FT);
    8.  #$FT addslashes($FT);
    9. return $FT;
    10.  }
    11.  
    12. $sql="INSERT INTO `user` VALUES ('','".FT($_POST['login'])."','".md5(FT($_POST['pass']))."','".FT($_POST['mail'])."')";
    13.  
    14. ?>
    15.  
     
  2. stas_t

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

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    - для md5 нет смысла прогонять параметр через FT
    - для остальных параметров используйте mysql_real_escape_string, который правильно обрабатывает NUL-символ и unicode-последовательности
     
  3. Vladson

    Vladson Старожил

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

    1 - stripslashes нужен только если включен magic_quotes_gpc
    2 - функция str_replace() в данном случае вовсе не фильтрует ничего "опасного" (замечу в кавычках), вместо этого проще использовать одну встроенную в библиотеку MySQL функцию mysql_real_escape_string() которая экранировала бы ВСЕ "опасные" символы
     
  4. metadon

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

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Спасибо за mysql_real_escape_string() помогло