允许用户在Extjs DateField中注入javascript。例如,如果您尝试使用javascript输入tag,请输入以下内容〈img src=x onerror=alert(1)〉
在Extjs网站https://docs.sencha.com/extjs/7.6.0/classic/Ext.form.field.Date.html的datefield文档中它会显示你警报弹出这里是一个屏幕截图。它不应该运行javascript,因为这被认为是代码注入。
ScreenShot
以前有人遇到过这个问题吗?
我试着调试弹出窗口的代码,但我无法找到根调用者。
先谢谢你的帮助
1条答案
按热度按时间xam8gpfp1#
此问题与工具提示处理有关。
在这里,代码被执行,因为它被注入invalidText属性。
https://docs.sencha.com/extjs/7.6.0/classic/Ext.form.field.Date.html#cfg-invalidText
这是默认值:
您可以通过删除替换项或更改文本来避免此问题。此外,在处理之前检查输入。像DOMpurify这样的库可以帮助这里或者内置ExtJS功能,如maskRe,regex属性-取决于使用的单个组件。
我不认为它与datefield有关,因为如果你配置一个这样的numberfield,它可以用相同的值复制:
它与验证和错误处理更相关,默认情况下将显示工具提示。此工具提示需要正确清理。
据我所知,这个问题已经存在多年了。
https://docs.sencha.com/extjs/7.6.0/classic/Ext.tip.ToolTip.html
另一个例子