PHP

Cпециальные функций для работы со строками в PHP

* strip_tags() - вырезает теги HTML и PHP из строки.
* htmlspecialchars() — конвертирует только специальные символы (’&’, ‘”‘, ”’, ‘<’ и ‘>’) в HTML сущности (’&’, ‘"’…). Используется для фильтрации вводимых пользователем данных для защиты от XSS-атак.
* htmlentities() - конвертирует все символы в строке (кроме букв) в мнемоники HTML. Используется для защиты от XSS, являясь более гибким аналогом htmlspecialchars.
* stripslashes() - удаляет заэкранированные символы (после преобразования в сущности предыдущими функциями их незачем экранировать). Обычно используется в связке с проверочной функцией
* get_magic_quotes_gpc(), показывающей текущую установку конфигурации magic_quotes_gpc. Эта конфигурация влияет на то, как будут обрабатываться специальные символы, содержащиеся в данных, передаваемых пользователем (массивы $_GET, $_POST, $_COOKIE). При magic_quotes_gpc = 1 эти спецсимволы (одиночные и двойные кавычки, обратный слэш, байт NULL) автоматически экранируются. При magic_quotes_gpc = 0 все данные передаются в таком виде, в каком их ввел пользователь. В последнем случае в целях безопасности требуется обрабатывать передаваемые данные.
* mysql_real_escape_string - мнемонизирует специальные символы в строке для использования в операторе SQL с учётом текущего набора символов в кодировке соединения. Иными словами, функция превращает любую строку в правильную и безопасную для MySQL-запроса. Используется для очистки всех данных, передающихся в MySQL-запрос для защиты от SQL-инъекций (Подключение к базе должно быть активным!).

Пример:
   <?php
   function safevar($var, $sql=false) {
       $var= htmlentities($var, ENT_QUOTES, `UTF-8`);
       // мнемонизировали строку.

       if(get_magic_quotes_gpc ())
       {
           $var= stripslashes ($var);
           // убрали лишнее экранирование.
       }
       if ($sql)
       {
           $var= mysql_real_escape_string ($var);
           // если нужен MySQL-запрос, то делаем соответствующую очистку.
       }
       $var= strip_tags($var);
       //убираем теги.

       return $var;
   }

   $var1 = "`><a href=`#test`> _</a>Тест¶";   

   $var2 = "``;!--"<XSS>=&{()}";  

   echo safevar($var1);

   $link = mysql_connect("localhost", "root", "") or die("Could not connect");
   echo safevar($var2, true);

   ?>
Добавлено: 02 Сентября 2013 12:16:51 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...