首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Discourse.js和“熟”字符串

Discourse.js和“熟”字符串
EN

Stack Overflow用户
提问于 2014-04-21 03:12:23
回答 1查看 209关注 0票数 1

我一直在审查discourse.js的源代码,这是一个用Ember/Rails/Postgres编写的讨论论坛。我正在研究避免这类应用程序中的XSS漏洞的最佳实践。

我注意到,语篇使用了“熟”字符串的概念,这是部分预转义字符串,用于类似于帖子正文的内容,然后使用三重胡子({{{}}})在Ember中显示它们。

但是,在其他情况下,例如post标题,语篇发送和接收原始的、未转义的字符串,如"This & the tag",并使用双胡子{{{}})显示它们。

关于这一切,我有以下问题:

(1)话语似乎只对支持Markdown的领域使用“烹饪”,如post body。烹饪仅仅是处理后处理Markdown字段的一种方式,还是也是为了解决XSS问题?

(2)使用JSON将原始字符串(包括类似HTML标记或实际上是HTML标记的内容)从服务器传递给客户端,难道不被认为是XSS漏洞吗?一些XSS嗅探器显然抱怨这些事情,有些人似乎建议在服务器上转义和/或清除HTML实体。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-21 07:02:43

( 1)不太清楚话语在这里做什么。因为标记被呈现为HTML,所以它需要使用未转义的输出。否则,从标记生成的HTML将被转义。虽然我不确定何时应用它,但在源代码中,话语似乎确实有html清理。

2)我会说不。JSON不是可执行的格式。因此,只要文本被视为文本等,就没有问题。作为一个普遍的想法,一个很好的理由,不摆脱服务器端,将是一个移动应用程序,它使用本机控件显示文本。一个页面应用程序和一个移动应用程序可以使用相同的JSON,但是对于移动应用程序来说,转义是不必要的。此外,转义需要一个上下文。OWASP预防备忘单定义了一组需要不同转义的上下文。因此,服务器上的单个转义可能是错误的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23190251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档