вторник, 16 июля 2013 г.

Запрет выполнения кусков HTML (JS, CSS) кода на веб странице

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

1. Использование тега <xmp>...</xmp>:
Согласно источникам (W3C, MDN), данный не тег не стандартизирован, но, как показывает практика, интерпретируется всеми браузерами. Однако, использование данного тега не рекомендуется.
<xmp><i>Текст, текст, текст</i></xmp>
На выходе:
<i>Текст, текст, текст</i>
2. Использование специального символа &lt;
 &lt;>Текст, текст, текст&lt;/i>
На выходе:
 <i>Текст, текст, текст</i>
3. Но, если у вас серьёзный проект, то вручную эти теги вводить очень не удобно, и следует автоматизировать данный процесс c помощью PHP:
<?php
$new 
htmlspecialchars("<a href='test'>Test</a>"ENT_QUOTES);
echo 
$new// &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>
(пример взят с официальной документации PHP)
Исходя из всего наиболее приемлемыми можно считать способы 2 и 3. 

Комментариев нет:

Отправить комментарий