<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>CakePHP - Manual/CommonTasks/DataSanitization</title>
<link>http://cake-php.ru/wiki/Manual/CommonTasks/DataSanitization</link>
<description>History/revisions of CakePHP/Manual/CommonTasks/DataSanitization</description>
<language>en-us</language>
<item>
<title>2009-04-12 22:40:58</title>
<link>http://cake-php.ru/wiki/Manual/CommonTasks/DataSanitization/show?time=2009-04-12+22%3A40%3A58</link>
<description>&lt;div class="pageBefore">&lt;img src="http://cake-php.ru/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".manual.commontasks.datasanitization" href="http://cake-php.ru/wiki/Manual/CommonTasks/DataSanitization" class="">/Manual&amp;nbsp;/&amp;nbsp;Common&amp;nbsp;Tasks&amp;nbsp;/&amp;nbsp;Data&amp;nbsp;Sanitization&lt;/a> за &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/DataSanitization?time=2009-04-12+22%3A40%3A58">2009-04-12 22:40:58&lt;/a> и &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/DataSanitization">2009-04-12 23:20:46&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Этот метод подготовит, подтвержденные пользователем данные, для&amp;nbsp;вывода внутри HTML. Это&amp;nbsp;особенно полезно, если вы&amp;nbsp;не хотите, чтобы пользователи были способны разрушить ваши шаблоны или&amp;nbsp;вставить изображения или&amp;nbsp;скрипты в&amp;nbsp;ваши HTML страницы. Если опция $remove установлена в&amp;nbsp;true, то&amp;nbsp;обнаруженное HTML содержимое будет удалено, а&amp;nbsp;не отрисовано, как&amp;nbsp;часть HTML кода.&lt;br />
$badString = '&amp;lt;font size="99" color="#FF0000"&amp;gt;HEY&amp;lt;/font&amp;gt;&amp;lt;script&amp;gt;...&amp;lt;/script&amp;gt;';&lt;br />
echo Sanitize::html($badString);&lt;br />
// вывод: &amp;lt;font size=&amp;quot;99&amp;quot; color=&amp;quot;#FF0000&amp;quot;&amp;gt;HEY&amp;lt;/font&amp;gt;&amp;lt;script&amp;gt;...&amp;lt;/script&amp;gt;&lt;br />
echo Sanitize::html($badString, true);&lt;br />
// вывод: HEY...&lt;a name="h867-1">&lt;/a>&lt;h3>escape&lt;/h3>
&lt;div class="indent"> &lt;strong>escape(string $string, string $connection)&lt;/strong>&lt;/div>
Используется для&amp;nbsp;экранирования SQL&amp;nbsp;выражений, добавлением слешей, в&amp;nbsp;зависимости от&amp;nbsp;системной настройки magic_quotes_gpc. $connection &amp;ndash; это&amp;nbsp;имя базы данных для&amp;nbsp;которой экранируется строка (имя совпадает с&amp;nbsp;именем в&amp;nbsp;файле app/config/database.php).&lt;a name="h867-2">&lt;/a>&lt;h3>clean&lt;/h3>
&lt;div class="indent"> &lt;strong>Sanitize::clean(mixed $data, mixed $options)&lt;/strong>&lt;/div>
Эта&amp;nbsp;функция очень сильна :), многозадачный очиститель, предназначенный для&amp;nbsp;работы с&amp;nbsp;целыми массивами (например $this-&amp;gt;data). Функция принимает массив (или строку) и&amp;nbsp;возвращает очищенную версию. Следующие очищающие действия выполняются для&amp;nbsp;каждого элемента в&amp;nbsp;массиве (рекурсивно):   &lt;br />
&lt;ul>&lt;li> Лишние пробелы (включая 0xCA) замещаются нормальным пробелом.
&lt;/li>&lt;li> Двустронний контроль специальных символов и&amp;nbsp;удаление возвратов каретки для&amp;nbsp;повышения SQL&amp;nbsp;безопасности.
&lt;/li>&lt;li> Добавление слешей для&amp;nbsp;SQL (просто вызывает sql&amp;nbsp;функцию, как&amp;nbsp;показано выше).
&lt;/li>&lt;li> Замена, введенных пользователем слешей, на&amp;nbsp;верные.&lt;/li>&lt;/ul>
Аргумент $options может быть или&amp;nbsp;массивом или&amp;nbsp;строкой. Когда передается строка, то $options &amp;ndash; это&amp;nbsp;имя соединения с&amp;nbsp;базой данных. Если же&amp;nbsp;передается массив, то&amp;nbsp;он может быть объединен со&amp;nbsp;следующими опциями:&lt;br />
&lt;ul>&lt;li> connection
&lt;/li>&lt;li> odd_spaces
&lt;/li>&lt;li> encode
&lt;/li>&lt;li> dollar
&lt;/li>&lt;li> carriage
&lt;/li>&lt;li> unicode
&lt;/li>&lt;li> escape
&lt;/li>&lt;li> backslash&lt;/li>&lt;/ul>
Использование clean() с&amp;nbsp;опциями выглядит таким образом:&lt;br />
&lt;div class="indent"> Sanitize::clean($this-&amp;gt;data, array('encode' =&amp;gt; false));&lt;/div>
&lt;span class="missingpage">&amp;lt;&amp;lt; Валидация данных из&amp;nbsp;контроллера&lt;/span>&lt;a href="http://cake-php.ru/wiki/DataValidation/FromController/edit?add=1" title="Создать эту страницу">?&lt;/a> | &lt;span class="missingpage">Обработка ошибок &amp;gt;&amp;gt;&lt;/span>&lt;a href="http://cake-php.ru/wiki/ErrorHandling/edit?add=1" title="Создать эту страницу">?&lt;/a>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;span class="missingpage">&amp;lt;&amp;lt; Валидация данных из&amp;nbsp;контроллера&lt;/span>&lt;a href="http://cake-php.ru/wiki/DataValidation/FromController/edit?add=1" title="Создать эту страницу">?&lt;/a> | (())&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2009-03-25 13:34:33</title>
<link>http://cake-php.ru/wiki/Manual/CommonTasks/DataSanitization/show?time=2009-03-25+13%3A34%3A33</link>
<description>&lt;div class="pageBefore">&lt;img src="http://cake-php.ru/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://cake-php.ru/wiki/Manual/CommonTasks/DataSanitization" class="">/Manual&amp;nbsp;/&amp;nbsp;Common&amp;nbsp;Tasks&amp;nbsp;/&amp;nbsp;Data&amp;nbsp;Sanitization&lt;/a> за &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/DataSanitization?time=2009-03-25+13%3A34%3A33">2009-03-25 13:34:33&lt;/a> и &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/DataSanitization?time=2009-04-12+22%3A40%3A58">2009-04-12 22:40:58&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;br />
&lt;!--notypo-->CakePHP&lt;!--/notypo--> класс Sanitize может быть использован для&amp;nbsp;освобождения, подтвержденных пользователем данных, от&amp;nbsp;злоумышленной и&amp;nbsp;другой нежелательной информации. Sanitize &amp;ndash; это&amp;nbsp;внутренняя библиотека, так&amp;nbsp;что она&amp;nbsp;может использоваться в&amp;nbsp;любом месте вашего кода, но, возможно, лучше всего в&amp;nbsp;контроллерах и&amp;nbsp;моделях.&lt;br />
&lt;br />
Все, что&amp;nbsp;вам необходимо сделать &amp;ndash; это&amp;nbsp;подключить библиотеку Sanitize:&lt;br />
&lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;span style="color: #000000">
&lt;span style="color: #0000BB">&amp;lt;?&amp;nbsp;&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;App&lt;/span>&lt;span style="color: #007700">::&lt;/span>&lt;span style="color: #0000BB">import&lt;/span>&lt;span style="color: #007700">(&lt;/span>&lt;span style="color: #DD0000">'Sanitize'&lt;/span>&lt;span style="color: #007700">);&amp;nbsp;&lt;br />&lt;/span>&lt;span style="color: #0000BB">?&amp;gt;&lt;/span>
&lt;/span>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;br />
Подключив библиотеку, вы&amp;nbsp;можете выполнять к&amp;nbsp;ней статические вызовы. &lt;br />
&lt;br />
&lt;hr noshade="noshade" size="1" />
&lt;a name="h867-1">&lt;/a>&lt;h3>paranoid&lt;/h3>
&lt;br />
&lt;div class="indent"> &lt;strong>paranoid(string $string, array $allowedChars);&lt;/strong>&lt;/div>
&lt;br />
Эта&amp;nbsp;функция уберет из&amp;nbsp;передаваемой строки $string, все&amp;nbsp;не&amp;nbsp;буквенно-цифровые символы. Функция проигнорирует определенные символы, переданные в&amp;nbsp;массиве $allowedChars.&lt;br />
&lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;span style="color: #000000">
&lt;span style="color: #0000BB">&amp;lt;?&lt;br />$badString&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">";:&amp;lt;script&amp;gt;&amp;lt;html&amp;gt;&amp;lt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;gt;@@#"&lt;/span>&lt;span style="color: #007700">;&lt;br />echo&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">Sanitize&lt;/span>&lt;span style="color: #007700">::&lt;/span>&lt;span style="color: #0000BB">paranoid&lt;/span>&lt;span style="color: #007700">(&lt;/span>&lt;span style="color: #0000BB">$badString&lt;/span>&lt;span style="color: #007700">);&lt;br />&lt;/span>&lt;span style="color: #FF8000">//&amp;nbsp;вывод:&amp;nbsp;scripthtml&lt;br />&lt;/span>&lt;span style="color: #007700">echo&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">Sanitize&lt;/span>&lt;span style="color: #007700">::&lt;/span>&lt;span style="color: #0000BB">paranoid&lt;/span>&lt;span style="color: #007700">(&lt;/span>&lt;span style="color: #0000BB">$badString&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;array(&lt;/span>&lt;span style="color: #DD0000">'&amp;nbsp;'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'@'&lt;/span>&lt;span style="color: #007700">));&lt;br />&lt;/span>&lt;span style="color: #FF8000">//&amp;nbsp;вывод:&amp;nbsp;scripthtml&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@@&lt;br />&lt;br />&lt;/span>&lt;span style="color: #0000BB">?&amp;gt;&lt;/span>
&lt;/span>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;br />
&lt;hr noshade="noshade" size="1" />
&lt;a name="h867-2">&lt;/a>&lt;h3>html&lt;/h3>
&lt;br />
&lt;div class="indent"> &lt;strong>html(string $string, boolean $remove = false)&lt;/strong>&lt;/div>
&lt;br />
&lt;br />
&lt;br />
&lt;span class="missingpage">&amp;lt;&amp;lt; Валидация данных из&amp;nbsp;контроллера&lt;/span>&lt;a href="http://cake-php.ru/wiki/DataValidation/FromController/edit?add=1" title="Создать эту страницу">?&lt;/a> | (())&lt;br />&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
