文本区域中的额外换行/ Microsoft Edge或encodeForHTML(ColdFusion)问题

gfr*_*ius 6 xss coldfusion esapi microsoft-edge

我想说,这是一个奇怪的现象,它只是在过去几个月中才开始出现的。使用ColdFusion的时,Microsoft Edge中的Textareas仅显示额外的换行符encodeForHTML()。如何复制...

<cfset x = chr(49)&chr(13)&chr(10)&chr(50)&chr(13)&chr(10)&chr(51)>
<cfoutput>
<textarea rows="10">#encodeForHTML(x)#</textarea>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

在Edge中,它显示如下:

在此处输入图片说明

但是在所有其他浏览器(甚至直到最近的Edge up)中,它看起来都是这样……

在此处输入图片说明

这是另一个奇怪的行为,如果您检查该元素,则双击该值,就好像您将要对其进行编辑一样,不进行任何更改,只需按Enter键,多余的换行符就会消失。这是一个生动的演示...

在此处输入图片说明

所以我决定输出所有经过的ascii,encodeForHTML()这就是结果...

49| = 1
38|35|120|100|59|38|35|120|97|59| = &#xd;&#xa;
50| = 2
38|35|120|100|59|38|35|120|97|59| = &#xd;&#xa;
51| = 3
Run Code Online (Sandbox Code Playgroud)

这是我所期望的。几年前,我与esapi项目的一位创始人进行了交谈,该项目的encodeForHTML()用途是什么,他说该项目会关闭分页符以防止日志欺骗。因此,既然这是最近才开始在Edge中发生的,您是否会说这是Edge的问题,并且无法&#xd;&#xa;在文本区域内正确处理?还是有其他方法可以解决此问题,但仍然可以从XSS安全地进行修复?谢谢!

我还尝试浏览Microsoft Edge的发行说明,但找不到与此问题相关的任何内容。