gpt4 book ai didi

python - Django 模板过滤器 : HTML Sanitization AND Embedding YouTube, Vimeo 等?

转载 作者:行者123 更新时间:2023-11-28 17:52:36 26 4
gpt4 key购买 nike

我有一些用户输入的内容(目前在 Markdown 中输入),我想让用户嵌入 YouTube、vimeo 等视频。因此,我需要以某种方式允许特定的 objectparamembed 标记,同时仍然阻止其他标记。

目前我正在使用白名单清理 HTML。我意识到我可以自定义白名单,以便它专门允许指向特定 URL 的对象,但是为所有不同类型的在线服务编写这个似乎是维护的噩梦。

这是我的逻辑。我们有 Markdown,它本质上(大部分)是安全的。除了在 Markdown 中恶意输入的内容之外,Markdown 呈现的实际标签保证是安全的,因此例如,如果我通过 oembed 或视频过滤器运行输出,那些生成的标签将是安全的。因此,如果我能以某种方式知道那些生成的标签 安全的,然后只剥离其他标签,那将解决问题。我只是不确定钩子(Hook)是什么。

我想知道在 Python 中是否已经有一种直接的方法可以做到这一点,或者我是否必须想出一些聪明的技巧。

最佳答案

你应该做的是检查 Markdown 是否安全,看看bleach ,然后通过 Markdown 传递它:

bleached = bleach.clean(user_input, tags=bleach.ALLOWED_TAGS + ['object', 'param', 'embed'], strip=True)
output = markdown(bleached)

此外,django-janior看起来可能会有用。

关于python - Django 模板过滤器 : HTML Sanitization AND Embedding YouTube, Vimeo 等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6832064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com