PHP - Очиститель HTML - привет w <o> rld/world учебное руководство striptags

Я просто изучаю использование Очистителя HTML, чтобы гарантировать, что санирована пользовательская-inputed строка (который представляет имя человека).

Я не хочу позволять любые теги HTML, сценарий, разметка и т.д. - я просто хочу альфу, числовые и нормальные знаки пунктуации.

Чистое число вариантов, доступное для Очистителя HTML, является пугающим и, насколько я вижу, документы, кажется, не имеют beggining/middle или конец

см.: http://htmlpurifier.org/docs

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

Я также рассматриваю просто теги полосы использования:

или PHP's в созданной очистке данных

16
задан 2 revs 20 April 2010 в 19:10
поделиться

8 ответов

Самый простой способ удалить все не буквенно-цифровые символы из строки - использовать RegEx.Replace () следующим образом:

Regex.Replace (stringToCleanUp, "[\ W]", "");

В то время как \ w (нижний регистр) соответствует любому символу "слова", эквивалент [a-zA-Z0-9 _] \ W соответствует любому символу "не-слова", т.е. все, что НЕ соответствует \ w. В приведенном выше коде используется \ W (верхний регистр), а результаты ничего не заменяются.

В качестве альтернативы, если вы не хотите использовать подчеркивание, вы можете использовать [^ a-zA-Z0-9], например:

Regex.Replace (stringToCleanUp, "[^ a-zA-Z0 -9] "," ");

-1
ответ дан 30 November 2019 в 23:36
поделиться

Вам следует выполнять проверку ввода на основе содержимого - например, лучше использовать какое-то регулярное выражение для имени

'/([A-Z][a-z]+[ ]?)+/' //ascii only, but not problematic to extend

, эта проверка должна хорошо работать.А затем экранировать вывод при печати его на странице с предпочтительными htmlspecialchars .

0
ответ дан 30 November 2019 в 23:36
поделиться

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

Например: если вы хотите избежать проблем с внедрением SQL в MySQL, используйте функцию mysql_real_escape_string () или аналогичную для очистки предложения SQL. *

Другой пример: записывая данные в документ HTML, проанализируйте данные с помощью html_entities () , чтобы данные выглядели как введенные пользователем.

-1
ответ дан 30 November 2019 в 23:36
поделиться

Вы можете использовать что-то вроде htmlspecialchars() для сохранения символов, введенных пользователем, без интерпретации браузером.

0
ответ дан 30 November 2019 в 23:36
поделиться

Я обычно очищаю весь пользовательский ввод перед отправкой в базу данных следующим образом

mysql_reql_escape_string( htmlentities( strip_tags($str) ));
-2
ответ дан 30 November 2019 в 23:36
поделиться

Для простоты можно использовать strip_tags () или заменить вхождения <,> и & на <, > и и соответственно. Это определенно не лучшее решение, но самое быстрое.

-1
ответ дан 30 November 2019 в 23:36
поделиться

Нашел это неделю назад ... НРАВИТСЯ.

«Простой синтаксический анализатор PHP HTML DOM, написанный на PHP5 +, поддерживает недопустимый HTML и предоставляет очень простой способ обработки элементов HTML». http://simplehtmldom.sourceforge.net/

// Example
$html = str_get_html("<div>foo <b>bar</b></div>");
$e = $html->find("div", 0);

echo $e->tag; // Returns: " div"
echo $e->outertext; // Returns: " <div>foo <b>bar</b></div>"
echo $e->innertext; // Returns: " foo <b>bar</b>"
echo $e->plaintext; // Returns: " foo bar"

Вы также можете перебирать и удалять отдельные теги и т. Д. Документы и примеры довольно хороши ... Мне показалось, что их легко использовать во многих местах. : -)

-2
ответ дан 30 November 2019 в 23:36
поделиться

Я всегда считал класс xss-чистки Codeigniter довольно хорошим, но недавно я обратился к Kohana.

Посмотрите на их метод xss_clean

http://github.com/kohana/core/blob/c443c44922ef13421f4a3af5b414e19091bbdce9/classes/kohana/security.php

0
ответ дан 30 November 2019 в 23:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: