2016-02-10 2 views
0

В целях предотвращения XSS атак на мой сайт я использую PHP regex какЗапретить все HTML-теги, кроме <img>

$regex = '/[<>]/'; 
$preg_replace= ($regex, '', $text); 

С этим коды я удалить < и > Charaters так проблема делается. Однако теперь я хочу, чтобы этот пользователь мог добавить тег <img> на мой сайт, в то время как другие теги, такие как <script>, все равно должны быть запрещены. Как я могу это сделать?

What i've tried

+1

Почему вы используете регулярные выражения для этого ? Что случилось с 'strip_tags', или лучшим инструментом, например html purify? единственный тонкий, который вы собираетесь выполнять с помощью регулярных выражений, - это развращение вашего html и почти наверняка НЕ ​​подключает отверстия, которые вы пытаетесь подключить. –

+2

'' тоже большой риск для XSS-атак. вы не должны допускать этого без тщательной проверки ввода пользователя. –

+0

@FranzGleichmann, как это возможно, я хочу это услышать. –

ответ

3

Вы можете использовать это:
http://htmlpurifier.org/

Если это не то, что вы ищете, вы можете сделать это:
http://php.net/manual/en/function.strip-tags.php

strip_stags($string, '<img>'); 
+0

'strip_tags()' я буду использовать что –

+0

@webber удаление всех тегов, кроме img, не предотвращает xss. Все еще можно добавить к нему обработчики событий. И даже если вы это исправите, люди все равно могут указать изображение на свой сервер, и они точно поймут, кто видел изображение, на которое они указали вас. –

Смежные вопросы