Home PageКаталог Изменения НовыеКомментарии Пользователи Регистрация
CakePHP: Manual11/Sanitize ...

Обработка данных


Оглавление документа

Использование обработки в вашем приложении

Cake оснащен классом обработки, который вы можете использовать для того, чтобы избавиться от отправленных злоумышленником данных или других нежелаемых данных. Обработка это основная библиотека, так что вы можете использовать ее где угодно в своем коде, но лучше все же использовать ее в контроллерах или моделях.

<?
// Сначала, включите центральную библиотеку:

uses('sanitize');

// Далее, создайте новый объект обработки:

$mrClean = new Sanitize();

// Отсюда вы можете воспользоваться обработкой, чтобы почитистить свои данные
// (Эти методы объясняются в следующем разделе)
?>

Модифицирование данных для безопасного использования в SQL и HTML

В этом разделе рассказывается как пользоваться некоторыми функциями предоставленными обработкой.

paranoid


Эта функция убирает все из целевой $string, что не является цифрами и буквами. Однако, вы можете разрешить использование определенных символов, просто поместите их в масив $allowed.

<?
$badString 
";:<script><html><   // >@@#";

echo 
$mrClean->paranoid($badString);

// исходящее: scripthtml

echo $mrClean->paranoid($badString, array(' ''@'));

// исходящее: scripthtml    @@
?>

html

Этот метод помогает вам приготовить к отображению в существующей HTML верстке, отправленные пользователем данные. Особенно он полезен, если вы не хотите, чтобы пользователь поломал вашу верстку или вставлял изображения или скрипты в коментарии вашего блога, посты форума и т.п. Если $remove установлен на true, любой код HTML будет удален из $string, а потом отрендерен как объект HTML.

<?
$badString 
'<font size="99" color="#FF0000">HEY</font><script>...</script>';

echo 
$mrClean->html($badString);

// исходящее: &lt;font size=&quot;99&quot; color=&quot;#FF0000&quot;&gt;HEY&lt;/font&gt;&lt;script&gt;...&lt;/script&gt;

echo $mrClean->html($badStringtrue);

// исхдящее: font size=99 color=#FF0000 HEY fontscript...script
?>

sql

Используется для избежания запросов SQL, добавляя слеши. Зависит от текущих настроек системы magic_quotes_gpc.

cleanArray

Эта функция прямолинейный, многоцелевой чистильщик. Используется на полных масивах (вроде $this->params['form'], например). Функция берет масив и чистит его: ничего не возвращает, поскольку очистка происходит в самом масиве, над каждым элементом:

  1. Странные пробелы (включая 0xCA) заменяются регулярными пробелами.
  2. HTML заменяется соответсвиями (включая \n в <br>).
  3. Двойная проверка специальных символов и перенос каретки назад для увеличения безопасности SQL..
  4. Добавляет слеши в SQL (просто запрашивает функции sql как упоминалось выше).
  5. Заменяет обратные слеши, которые поставил пользователь на доверенные обратные слеши.

 
Комментарии

грр...круто... респкт за ресурс :) хоть и переводики иногда кривовати но все равно респкт :))

238-170-124-91.pool.ukrtel.net (2008-04-25 13:53:58)

Не знаю как в 1.2, но в 1.1 $mrClean->sql() не имеется. Есть $mrClean->escape().

dnipronet.ks.ua (2008-05-30 20:41:23)

Всё же это 1.2...

dnipronet.ks.ua (2008-05-30 21:48:53)

sql() это deprecated

89.189.137.89.dynamic.ufanet.ru (2008-09-19 13:40:49)
Добавить комментарий:

Файлов нет. [Показать файлы/форму]