Приложение Django для электронной почты - PullRequest
0 голосов
/ 03 января 2011

Я работаю с PINAX и DJANGO над созданием сайта. На этом сайте есть компонент электронной почты / обмена сообщениями, и вы можете получить внешнюю электронную почту, которая является копией электронной почты, которая находится на сайте. (Письмо может содержать URL-адреса и некоторое удобное форматирование, и, поскольку оно может быть прочитано за пределами моего сайта, мне нужно, чтобы отправленное форматирование было HTML (поэтому оно будет отображаться правильно: @ gmail, yahoo и т. Д. ...

Я ищу приложение (или просто некоторый код на Python), которое очистит тело входной электронной почты от всех потенциальных неприятностей, чтобы я мог безопасно отобразить html в средстве просмотра сообщений. Прямо сейчас происходит то, что escaper захватывает основной текст письма и экранирует все теги, поэтому вместо просмотра списка

  • как
  • это

вы видите

<ul>
    <li>like</li>
    <li>this</li>
</ul>

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

Мне понравилась идея заставить писателя использовать уценку, преобразовать уценку в HTML и затем отобразить тело сообщения как безопасное, но я все еще беспокоюсь о том, что пропущу один из случаев и позволю сценарию / объекту тег через.

Я не хочу запрещать все html, только теги сценариев, теги объектов и, ну, может быть, некоторые другие, о которых я еще не задумывался, поэтому я ищу предварительно написанный пакет. Любые идеи о том, что я мог бы использовать?

1 Ответ

0 голосов
/ 03 января 2011

Если вы выводите строку и не помечаете ее как |safe, для нее будет экранирован html, и теги будут отображаться, а не отображаться Однако это не то, что вы хотите с точки зрения безопасности.

Посмотрите на это обсуждение больше (см. Фрагмент во втором ответе). Вам нужен белый список тегов, которые вы хотите вывести, а остальные удалите. Вы все еще должны быть осторожны с JavaScript, хотя:

Шаблонный тег Django для рендеринга подмножества html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...