在Python中允许降价,同时防止XSS攻击的最佳实践?

在Python中允许降价,同时防止XSS攻击的最佳实践?,python,xss,markdown,sanitization,Python,Xss,Markdown,Sanitization,我需要让用户在我的web应用程序中输入降价内容,它有一个Python后端。我不想不必要地限制它们的条目(例如,不允许任何HTML,这违背了标记的精神和规范),但显然我需要防止跨站点脚本(XSS)攻击 我不可能是第一个遇到这个问题的人,但是我没有看到任何关于所有关键字“python”、“Markdown”和“XSS”的问题,所以我来回答 使用Python库处理降价和防止XSS攻击的最佳实践方法是什么?(支持语法的额外点数。)可能就是您想要的。它似乎也涵盖了你所要求的很多内容 为了防止XSS攻击,首

我需要让用户在我的web应用程序中输入降价内容,它有一个Python后端。我不想不必要地限制它们的条目(例如,不允许任何HTML,这违背了标记的精神和规范),但显然我需要防止跨站点脚本(XSS)攻击

我不可能是第一个遇到这个问题的人,但是我没有看到任何关于所有关键字“python”、“Markdown”和“XSS”的问题,所以我来回答

使用Python库处理降价和防止XSS攻击的最佳实践方法是什么?(支持语法的额外点数。)

可能就是您想要的。它似乎也涵盖了你所要求的很多内容


为了防止XSS攻击,首选的方法与其他语言完全相同,即在返回时转义用户输出。我只是瞥了一眼代码和密码。通过一些简单的配置调整,降价似乎可以立即完成。我无法确定“最佳实践”,但在接受降价输入时,通常有三种选择:

  • 允许在Markdown内容中使用HTML(这是Markdown最初/正式的工作方式,但如果处理得太简单,可能会引发XSS攻击)

  • 只需将任何HTML视为纯文本,本质上就是让您的标记处理器逃避用户的输入。因此,输入中的
    ..
    将不会创建小文本,而是文本“
    ..


  • 扔掉Markdown中的所有HTML标记。这对用户来说是非常不友好的,可能会被
    “Python后端”之类的文本卡住?这到底是什么意思?如果您支持降价,所有HTML都可以用
    引用。您可以在@S.Lott上对照XSS备忘单测试您的应用程序:这意味着服务器端脚本是用Python编写的<代码>
    并不是完全的解决方案。Markdown是我们在这里用来写评论和问题的东西…它唯一产生
    块的时候是当你特别请求一个代码块时(通过缩进)。@S.Lott不用担心,我向已经知道Markdown如何工作以及后端是什么的人问这个问题。@S.Lott我拒绝。我希望这个问题相当笼统,不局限于Django、App Engine或Zope等(我假设您不希望我定义“服务器端”或“Python后端”,而是澄清我可能使用的框架。毕竟,如果您需要这些定义,您肯定不知道答案。)这是不对的……转义输出会在页面上显示标记。“Python中的标记”看起来确实像我想要的。非常感谢,非常感谢。“转义输出会在页面上显示标签”。还可能发生什么?或者使用
    标记转义HTML,将HTML转换为简单的格式化文本,从而阻止任何正在进行的脚本编写。或者您允许XSS。“允许”HTML和神奇地阻止XSS.s.Lott之间几乎没有中间立场,你愤怒的无知令人困惑。(1) 当前位置我可能会选择正是这样做的。这叫消毒。您是否从未见过这样一个博客,它允许HTML评论,但只允许某些标记和很少或没有属性?这当然是可能的。(2) :
    您意识到,标记实际上并不能逃避任何东西或防止XSS攻击,对吗?考虑<代码>…<代码>作为输入:PWND,正如他们所说的,没有喊叫的孩子。通过转义输出,我的意思是只转义直接插入的HTML代码(标记标记中的HTML)。应该是HTML(markdown的目标)的实际输出仍然是HTML。试一试,你就会明白。将Markdown与Python和(基于html5lib的)结合起来,让事情变得更简单。你有两个选择,要么#1,要么#2,要么#3:DCaleb:Lol。很好。固定的。