Как защитить электронную почту в формате HTML в веб-приложении?

Каков наиболее эффективный способ очистки HTML-сообщений электронной почты, отображаемых в веб-приложении, чтобы вредоносный код не выполнялся, но HTML-макет оставался нетронутым?

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

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

Есть ли у кого-нибудь понимание этой проблемы?


person Scott Klarenbach    schedule 07.09.2011    source источник


Ответы (2)


Я рекомендую вам прочитать ответы на Strict HTML Validation and Filtering in PHP, которые задают тот же вопрос. HTML Purifier — хорошая отправная точка.

person D.W.    schedule 19.09.2011

Я предлагаю вам что-то вроде http://htmlpurifier.org/ или, если вы используете php: https://phpids.org/

Не пишите свои собственные правила регулярных выражений, они не сработают! :)

Чтобы сделать некоторую рекламу, если вы используете php, вы можете попробовать мою систему предотвращения вторжений PHP, ее альфа-версию, но мне нужны тестеры :)

http://ra23.net/wop/some_phpips/

Это небольшой фреймворк вокруг phpids.

person evildead    schedule 08.09.2011
comment
Вы уверены, что phpids решает эту проблему? Я не думаю, что полагался бы на это, чтобы решить эту конкретную проблему. - person D.W.; 19.09.2011
comment
afaik, он также реализует htmlpurifier. Так что он может проверить наличие вредоносного кода, если захочет это сделать. Не вижу причин, почему бы им не воспользоваться. Потребуется немного терпения, чтобы заставить фильтр работать для электронной почты, но я думаю, что это возможно. - person evildead; 19.09.2011