Какой лучший способ корректного фильтра для HTML-редактора в PHP? - PullRequest
3 голосов
/ 07 июля 2010

Я использую редактор TinyMCE на моем сайте.Я хочу узнать способ правильного фильтра для моего ввода, когда я вставляю в БД.Какие фильтры нужно использовать?Например, я получаю эти данные в БД следующим образом:

$example = $_POST['example'];

<textarea name="example"></textarea>

Я не использую htmlscepialchars ();потому что мне нужны HTML-теги.

«Извините за мой плохой английский.»

Ответы [ 2 ]

1 голос
/ 07 июля 2010

HTMLPurifier.

Скачать здесь: http://htmlpurifier.org/

Включить:

include 'path/to/HTMLPurifier.auto.php';

Используйте это:

$config = HTMLPurifier_Config::createDefault();
$config->set('Core', 'Encoding', 'UTF-8');
$config->set('XHTML', 'Doctype', 'XHTML 1.0 Strict');
$purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify( $dirty_html );

И спите спокойно, зная, что в HTML нет таких XSS-атак, очищенных таким образом.

Люди, предлагающие mysql_real_escape_string (), вероятно, не получили вашего вопроса (или я не получил), вы спрашивали, как отфильтровать разметку HTML из редактора WYSIWYG, чтобы ее можно было безопасно сохранить в базе данных.

mysql_real_escape_string () имеет отношение к защите от внедрения SQL, но лучше подготовленные операторы (Google PDO).

0 голосов
/ 07 июля 2010

Если я правильно понимаю, вы хотите сохранить html в своей базе данных, и вам нужен какой-то способ его кодирования?

Вы можете сделать следующее перед сохранением в БД:

urlencode($_POST['example']);

И когда вы получаете, вы можете urldecode ($ data);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...