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

时间:2019-05-30 23:48:23

标签: coldfusion xss microsoft-edge esapi

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

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

在Edge中,它显示如下...

enter image description here

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

enter image description here

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

enter image description here

因此,我决定在通过encodeForHTML()之后输出所有内容的ascii,这就是结果...

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

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

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

0 个答案:

没有答案