За последние 24 часа нас посетили 22899 программистов и 1222 робота. Сейчас ищут 694 программиста ...

Безопасность запросов

Тема в разделе "MSSQL", создана пользователем lurii, 23 сен 2010.

  1. lurii

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

    С нами с:
    30 сен 2008
    Сообщения:
    40
    Симпатии:
    0
    Как защитить входящие данные на PHP для MSSQL?
    (для MySQL mysql_real_escape_string())
     
  2. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    PHP:
    1. <?php
    2. function MSSQLreal_escape_string($string) {
    3.     return str_replace("'","''", $string);
    4. }
    Какие-то источники утверждали этого достаточно =)
     
  3. lurii

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

    С нами с:
    30 сен 2008
    Сообщения:
    40
    Симпатии:
    0
    Во многих источниках указано:
    а далее тишина ... какие символы то фильтровать??
     
  4. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Специальные :)
     
  5. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    можно было хотя бы узнать что экранирует mysql_real_escape_string, для того чтоб делать ее аналог в mssql. Логично?

     
  6. lurii

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

    С нами с:
    30 сен 2008
    Сообщения:
    40
    Симпатии:
    0
    Не факт, для мсскл добавляются свои символы кроме кавычки:
    -- двойное тире
    /* начала коммента
    ; точка с запятой
    а на сколько критичен нуль-байт и каретки ... посмотрим
     
  7. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Эти же символы есть и в mysql и означают то же самое.
     
  8. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Что вы гоните. Я во втором топике нарисовал тебе функцию. Больше там ничего экранировать не надо. У самого сейчас проект с мсскулом
    Код (Text):
    1.     public function escape_string($string) {
    2.         if ($this->sql_type == "mssql") {
    3.             return str_replace("'","''", $string);
    4.         }
    5.             .....
    6.     }
    Вот весь экран