2013-07-13 2 views
0

На моем сайте у меня есть раздел, где пользователь может написать свою биографию или поместить информацию о себе. В этом разделе они могут размещать фотографии.php чистка тегов изображений перед отправкой в ​​базу данных

У меня есть проблема с этим; если пользователь скопирует и вставляет изображение с сайта, такого как Google, стили, которые изображение осталось с ним. Как этот:

<img id="irc_mi" -webkit-linear-gradient(45deg, #efefef 25%, transparent 25%, transparent 75%, #efefef 75%, #efefef), -webkit-linear-gradient(45deg, #efefef 25%, transparent 25%, transparent 75%, #efefef 75%, #efefef); -webkit-background-size: 21px; background-size: 21px; box-shadow: rgba(0, 0, 0, 0.648438) 0px 5px 35px; -webkit-box-shadow: rgba(0, 0, 0, 0.648438) 0px 5px 35px; margin-top: 80px; background-position: 0px 0px, 10px 10px;" src="http://www.fireandice.com/images/P/4060104_a-Small-Cat-Copper-Drip-Wall-Decoration.jpg" alt="" width="400" height="400" /> 

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

Я пытался PHP preg_replace, но имел некоторые проблемы с сохранением изображения src, потому что это единственное, что я не хочу заменять.

$src = '<img src="" width="150" height="226" alt="user image"/>'; 
preg_replace('/<img[^>]+\>/i', $src, $string); 

Есть ли способ сохранить оригинал src?

ответ

0

Почему вы разрешаете вводить HTML-код?

Обычно есть два метода, которые будут выполнять задание: либо разрешить ввод URL-адреса, либо разрешить загрузку изображения.

Первым может быть плохо, потому что обычно вы хотите сами размещать изображения и не захватывать их нигде. Кроме того, другой администратор сервера может добавить анти-hotlinking, и эти изображения больше не будут отображаться.

Загрузка имеет собственный класс проблем, потому что без каких-либо ограничений пользователь будет загружать огромные, вредоносные файлы - и вам нужно как-то справляться с ним.

Если вы действительно хотите дезинфицировать произвольный HTML, используйте http://htmlpurifier.org/ - и не придумывайте свою схему.

+0

Я действительно отчасти идиот-доказательство, если они копируют и вставляют образ, а не код с другого сайта. У них нет доступа к html, но в редакторе wysiwyg они могут копировать вещи из других мест. Кроме того, они могут загружать свои собственные изображения, но я снова идиот, проверяю все. – zazvorniki

+0

Также я хотел бы создать свой собственный, а не использовать чужой плагин. Я не пытаюсь что-то взломать, просто пытаясь очистить теги изображений. – zazvorniki

+0

У меня уже есть запрещенные теги, и ничего плохого не происходит. Просто потому, что я не использую один подключаемый модуль, не означает, что я не защищаю свою базу данных и веб-сайт. Существует несколько способов кошки кошки. Моя проблема - это тег изображения на данный момент, я просто хотел бы убедиться, что они чисты, прежде чем отправлять их в мою базу данных. Я мог бы просто отключить графические теги вообще, как в других местах, но я хочу, чтобы у них была такая свобода в их собственной биографии. – zazvorniki

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