概念自动化是什么意思?

时间:2016-02-16 12:23:55

标签: web escaping xss

在阅读Closure Templates时,我遇到了以下声明:

  

Closure模板在上下文中被自动调整以降低XSS的风险。

据我所知,转义正在消除输入字符串中的歧义,如here所述。

我不确定这究竟是什么意思,或许对现实世界的例子进行解释会非常有帮助。

1 个答案:

答案 0 :(得分:2)

在Closure Templates文档的this页面上有关于安全性和自动转换的更多详细信息。特别是,请查看给定here的示例。

您将看到输入{$x}的转义不同,具体取决于它在模板输出中的插入位置(例如,在HTML,JavaScript,CSS等中)。这就是的含义上下文(即依赖于上下文)自动转换。

如文档中所述:

  
      
  • {$x}出现在HTML文本中时,我们对其进行实体编码(<→<)。
  •   
  • {$x}出现在网址内或作为CSS数量时,我们拒绝了它,因为它的协议javascript:不是httphttps,而是输出安全值#zSoyz。如果{$x}出现在网址的查询部分中,我们会对其进行百分比编码,而不是直接拒绝它(<→%3C)。
  •   
  • {$x}出现在JavaScript中时,我们将其包装在引号中(如果尚未在引号内)并转义HTML特殊字符(<→\ x3c)。
  •   
  • {$x}出现在CSS引号中时,我们做了类似于JavaScript的事情,但使用了CSS转义约定(<→\ 3c)。
  •   
     

恶意输出被破坏。