【问题标题】:Django app for email用于电子邮件的 Django 应用程序
【发布时间】:2011-01-03 03:33:24
【问题描述】:

我正在与 PINAX 和 DJANGO 合作建立一个网站。该站点中有一个电子邮件/消息组件,您可以获得一封外部电子邮件,该电子邮件是该站点上电子邮件的副本。 (电子邮件可以包含 URL 和一些漂亮的格式,因为它可能会在我的网站之外被阅读,所以我需要发送的格式是 HTML(所以它会正确显示@gmail 和 yahoo 等......

我正在寻找一个应用程序(或只是一些 python 代码),它将清除所有潜在的讨厌的输入电子邮件正文,以便我可以安全地在消息查看器中显示 html。现在发生的事情是转义者获取了电子邮件正文并转义了所有标签,而不是看到一个列表

  • 喜欢
  • 这个

你看

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

我正在寻找一组预先构建的代码来将输入的电子邮件清理为正常的东西。我可以编写一些正则表达式来做到这一点,但我希望其他人已经做到了这一点并对其进行了一些测试。

我曾想过强迫作者使用 markdown,将 markdown 转换为 html,然后将消息正文显示为安全,但我仍然担心错过其中一个案例并让脚本/对象标记直通。

我不想禁止所有的 html,只是脚本标签、对象标签,以及其他一些我还没有想到的,这就是为什么我正在寻找一个预先编写的包。关于我可以使用什么的任何想法?

【问题讨论】:

  • 小心标签白名单 - 不要忘记属性 - &lt;a href="#" onclick="dosomethingreallymean()"&gt;hello&lt;/a&gt;

标签: django


【解决方案1】:

如果您输出一个字符串并且不将其标记为|safe,它将对任何html 进行转义,并且标签将显示而不是呈现。但是,从安全角度来看,这不是您想要的。

查看此讨论以了解更多信息(请参阅第二个答案的 sn-p)。你想要的是一个你想要输出的标签的白名单,然后删除其余的。不过,您仍然必须小心使用 javascript:

Django templatetag for rendering a subset of html

【讨论】:

    猜你喜欢
    • 2011-05-03
    • 2011-02-03
    • 2011-01-18
    • 2010-12-20
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    相关资源
    最近更新 更多