使用flask/jinja,在用户生成的文本块中安全地呈现链接的可行方法是什么?

chr*_*kso 4 python regex security jinja2 flask

想想在某些纯文本旁边粘贴链接的Twitter,在呈现推文时,该网址现在是一个可点击的链接.

我是:

  • 通过扫描html标签的文本并用html实体代码替换它们,用我自己的替换jinja的autoescape

  • 使用正则表达式来检测文本中包含的URL并将其替换为a href =

    • 这个表达式会检测任何#tt,http/https,www /任何子域名是什么意思?
  • 并将此全部渲染为模板中的|safe?

还是有一个python/flask/jinja'功能'可以更好地处理这种事情?

Sea*_*ira 6

Jinja有一个内置的过滤器urlize,应该完全按照你的意愿行事.