Ala*_* H. 26 python xss markdown sanitization
我需要让用户将Markdown内容输入我的Web应用程序,该应用程序具有Python后端.我不想不必要地限制他们的条目(例如,不允许任何 HTML,这违背了Markdown的精神和规范),但显然我需要防止跨站点脚本(XSS)攻击.
我不能成为第一个有这个问题的人,但是没有看到所有关键词"python","Markdown"和"XSS"的任何SO问题,所以这里就是这样.
使用Python库处理Markdown并防止XSS攻击的最佳实践方法是什么?(支持PHP Markdown Extra语法的奖励点.)
Ala*_* H. 21
我无法确定"最佳做法",但通常在接受Markdown输入时有三种选择:
在Markdown内容中允许HTML(这是Markdown最初/正式工作的方式,但如果处理得天真,则会引发XSS攻击).
只需将任何HTML视为纯文本,实际上让您的Markdown处理器逃脱用户的输入.因此<small>…</small>在输入中不会创建小文本,而是创建文字文本" <small>…</small>".
丢弃Markdown中的所有HTML标记.这是非常用户敌对的,可能会<3根据实施情况阻塞文本.这是Stack Overflow上采用的方法.
我的问题特别关注案例#1.
鉴于此,对我来说效果很好的是通过发送用户输入
我在这个组合上投了一堆XSS攻击尝试,都失败了(欢呼!); 但使用良好的标签像<strong>完美无瑕地工作.
这样,您实际上使用选项#1(根据需要),除了可能存在危险或格式错误的HTML片段,这些片段在选项#2中处理.
(感谢YH Wong将我指向Markdown图书馆的方向!)
| 归档时间: |
|
| 查看次数: |
5366 次 |
| 最近记录: |