Проверка кода встраивания HTML с использованием PHP или javascript или PHP-фреймворка (Zend) - PullRequest
2 голосов
/ 07 октября 2009

просто простой вопрос .. Есть ли хорошие практики для проверки кода встраивания HTML? Кстати, я сейчас использую Zend Framework и prototype + scriptaculous .. было бы здорово, если бы кто-то мог дать подсказку об этой среде.

Спасибо! ^^

Ответы [ 2 ]

8 голосов
/ 07 октября 2009

Если вы хотите разрешить пользователю вводить HTML, а затем отображать его на своем веб-сайте, действительно отличным решением будет HTMLPurifier .

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

Таким образом, если ваши пользователи введут неверный HTML, вы все равно получите действительный HTML (меньше риск разрушения макета при его выводе) , и если вы укажете только несколько не опасные теги и атрибуты, это большой плюс для безопасности.

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

Например, если я введу что-то вроде этого:

<p>
this <b>is a<i>test</b></i>
with a not <em>closed tag
and a <a href="http://google.com" onclick="alert('bouh');">link</a>
and some <script type="text/javascript>alert('script');</script>
</p>

HTML-код, который я получу как , будет :

<p>
this <b>is a<i>test</i></b>
with a not <em>closed tag
and a <a href="http://google.com">link</a>
and some </em></p>

т. Е. Теги в порядке (закрыты, в правильном порядке), тег сценария удален, как и атрибут onclick ссылки.

1 голос
/ 07 октября 2009

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

Лучше всего определить набор принятых HTML-кодов и убрать все теги, которые не совпадают.

...