为什么_.escape在Underscore.js中修改/字符?

时间:2011-11-28 15:38:50

标签: underscore.js html-escape

我正在查看Underscore.js api,我注意到_.escape逃脱&<>",{{1 }和'个字符。让我感到惊讶的是逃避/

是否有理由逃避我不知道的/个字符?

2 个答案:

答案 0 :(得分:15)

编辑:好的,显然,OWASP推荐它,因为它“有助于结束HTML实体”。

  

使用HTML实体编码转义以下字符以防止   切换到任何执行上下文,例如脚本,样式或事件   处理程序。规范中建议使用十六进制实体。此外   在XML(&amp;,&lt;,&gt;,“,'),前锋中有5个字符   包含斜杠,因为它有助于结束HTML实体。

& --> &amp;
< --> &lt;
> --> &gt;
" --> &quot;
' --> &#x27;     &apos; is not recommended
/ --> &#x2F;     forward slash is included as it helps end an HTML entity

答案 1 :(得分:0)

很多时间过去了,但我发现了同样的问题。奇怪的是,代码上的更改列表是根据underscore github

var escapeMap = {
  '&': '&amp;',
  '<': '&lt;',
  '>': '&gt;',
  '"': '&quot;',
  "'": '&#x27;',
  '`': '&#x60;'
};