Как я могу сделать HTML безопасным для веб-браузера с python?

StackOverflow https://stackoverflow.com/questions/1606201

Вопрос

Как сделать HTML из электронной почты безопасным для отображения в веб-браузере с python?

Любые внешние ссылки не должны отображаться при отображении. Другими словами, весь отображаемый контент должен поступать из электронной почты, а не из Интернета.

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

Я бы хотел не кодировать это сам.

Решения, требующие последней версии браузера (Firefox), также приемлемы.

Это было полезно?

Решение

html5lib содержит дезинфицирующее средство HTML + CSS. В настоящее время он допускает слишком много, но не должно быть слишком сложно изменить его в соответствии с вариантом использования.

Его можно найти в здесь .

Другие советы

Мне не совсем понятно, что именно вы имеете в виду под " safe " ;. Это довольно большая тема ... но, для чего она стоит:

По моему мнению, демонтаж парсера из ActiveState Cookbook - один из самых простых решения. Вы можете в значительной степени скопировать / вставить класс и начать использовать его.

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

Используйте модуль HTMLparser или установите BeautifulSoup и используйте их для анализа HTML, а также для отключения или удаления тегов. Это оставит любой текст ссылки, но он не будет выделен и не будет кликабельным, так как вы отображаете его с помощью компонента веб-браузера.

Вы можете прояснить, что было сделано, заменив <A></A> на <SPAN></SPAN> и изменив текстовое оформление, чтобы показать, где раньше была ссылка. Возможно, другой оттенок синего, чем обычно, и пунктирное подчеркивание, указывающее на разбитость. Таким образом, вы немного ближе к отображению, как задумано, фактически не вводя людей в заблуждение, нажимая на что-то, что нельзя нажимать. Вы даже можете добавить указатель мыши в Javascript или pure CSS , в котором появляется всплывающая подсказка, объясняющая, что ссылки были отключены по соображениям безопасности.

Аналогичные действия можно выполнить с тегами <IMG></IMG>, в том числе заменив их пустым прямоугольником, чтобы макет страницы был близок к оригиналу.

Я делал такие вещи с помощью Beautiful Soup , но HTMLparser включен в Python. В старых дистрибутивах Python был htmllib, который сейчас не поддерживается. Поскольку HTML-код в сообщении электронной почты может быть не совсем корректным, используйте Beautiful Soup 3.0.7a, который лучше подходит для понимания испорченного HTML-кода.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top