通过传递给 Flatpickr 选项的不安全配置值引起的基于 DOM 的 XSS
作者: kanangandhi93创建于 2026年4月22日更新于 2026年8月14日
总结: Flatpicker允许应用程序开发人员将配置值(如下个Arrow)直接传入DOM-已交付的UI元素. 如果这些值出自不可信来源(API,JSON config,或由用户控制的后端数据),它们可能会被解释为HTML并在浏览器中被执行,从而导致基于DOM的Cross-Site脚本(XSS).
说明:
整合Flatpickr的应用程序可能从后端服务或JSON文件中动态地加载配置,并在没有验证或消毒的情况下直接将值注入Flatpickr选项. 如果恶意角色控制了这些值,他们可以注入在DOM中被渲染的HTML有效载荷.
重现步骤(实例设想)
- 后端返回配置 : json: {"下个箭":"""}
- 前端直接传入平板电脑: 组件.ts 文件 : 平取器( 输入, {下个箭头: config. nextArrow } );
- 平板电脑在DOM中产生值。
- 有效载荷在浏览器上下文中执行。
如果利用平板电脑在现实世界应用中发挥作用:
基于DOM的XSS
任意处决JavaScript
会话/盗窃(如果可以使用)
UI操纵/喷雾
完全折中SPA客户背景
根源
平接器接受类似 HTML 的原始配置值
不默认实施消毒或编码
开发者可能不知不觉地将不信任的数据传递到配置字段
建议(针对维护者)
文档风险明显地警告用户,在 DOM 语境中,配置字段可能作为 HTML 提供。
鼓励安全默认
建议:
纯文本值
图标系统而不是HTML字符串
考虑消毒层(可选),可选地提供安全渲染模式或逃离帮助者.
内容来源: flatpickr/flatpickr