Хочу добавить смайлы вот так:
$smile=array(
"1" => ':1:',
"2" => ':)',
"3" => ':(',
"4" => ':4:',
"5" => ':life:');
$smile2=array(
"1" => '<img src="/images/smile1.gif" alt="."/>',
"2" => '<img src="/images/smile2.gif" alt="."/>',
"3" => '<img src="/images/smile3.gif" alt="."/>',
"4" => '<img src="/images/smile4.gif" alt="."/>',
"5" => '<img src="/images/smile5.gif" alt="."/>');
$text=htmlspecialchars($text);
$a=0;
while($a++<5){//5 заменяем на количество смайлов в массиве
$text=str_replace(''.$smile[$a].'', ''.$smile2[$a].'', ''.$text.'');
}
echo ''.$text.'<br/>';
Переменная $text выводится из базы, далее ее обрабатывает htmlspecialchars, далее добавляем смайлы из массива, скажите мне пожалуйста можно ли как то обойти такую фильтрацию? По моей логике ее обойти нельзя так как текст заменяется на смайлы только если они есть в массиве. Решил спросить так как не уверен на 100% в защите от XSS - вы сможете обойти данную фильтрацию и всунуть какой то код html в текст?