这是一个很奇怪的问题,我想说是在过去的几个月内才开始的。使用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中,它显示如下...
但是在所有其他浏览器(甚至直到最近的Edge up)中,它看起来都是这样...
这是另一个奇怪的行为,如果您检查该元素,则双击该值,就好像您要对其进行编辑一样,不进行任何更改,只需按Enter键,多余的换行符就会消失。这是一个展示它的视频...
因此,我决定在通过encodeForHTML()
之后输出所有内容的ascii,这就是结果...
49| = 1
38|35|120|100|59|38|35|120|97|59| = 

50| = 2
38|35|120|100|59|38|35|120|97|59| = 

51| = 3
这是我所期望的。几年前,我与encodeForHTML()
使用的esapi项目的一位创建者进行了交谈,他说esout项目分页符以防止日志欺骗。因此,既然这是最近才开始在Edge中发生的,您是否会说这是Edge的问题,它不能在文本区域内正确处理

?还是有其他方法可以解决此问题,但仍然可以从XSS安全地进行修复?谢谢!
我也尝试浏览Microsoft Edge的发行说明,但找不到与此问题相关的任何内容。