首页/新闻资讯/正文详情

Home Assistant 统计图表实体名称存储型 XSS 分析

发布时间:2026/9/24 21:58:29 来源:云帆数科 栏目:资讯中心
Home Assistant 统计图表实体名称存储型 XSS 分析
技术原理与风险范围展示数据在 HTML 上下文会改变语义Statistics Graph 的 tooltip 旧实现把 param.seriesName 插入 HTML 字符串。实体名称原本只是数据但进入 HTML 解析器后标签字符可能变成元素或事件处理器。[1] 风险发生在输出上下文而不是名称字段是否结构化。输入来源不只是在本地表单里改名公告指出认证用户可以设置名称某些集成还可能提供默认实体名称。[1] 这形成条件式供应链路径上游设备或服务给出名称Home Assistant 存储并展示用户在统计图表中触发提示框。并非所有集成都可控也不是所有部署都添加了相关卡片。修复从逐字段过滤转向安全渲染原语官方 PR 将多个 ECharts tooltip 从返回 HTML 字符串迁移到 Lit 模板结果使用户可控字段以文本表达式自动编码并在图表基类集中包装 formatter。[4][5] 这比每个调用点手工调用过滤函数更稳定也覆盖统计、历史、能耗和网络图等多处渲染路径。编码必须与上下文对应HTML 文本、属性、URL 和 JavaScript 字符串的规则不同。模板自动转义能降低文本进入 HTML 的风险但开发仍要避免把结果重新解释为原始 HTML。链接目标、富文本和图表库扩展分别需要自己的策略。工程推断任何把标签、设备名、模型名或节点名交给图表 formatter 的前端都应审计 formatter 返回类型。字符串方便却可能绕过框架默认安全边界。安全模型与检测思路以下仅用 Python 对固定无害标签做文本编码不启动浏览器、不生成事件处理器也不是 Home Assistant PoC。它展示数据以文本呈现与拼进 HTML 之间的区别。from html import escapedef tooltip_text(entity_name, value):return f{escape(entity_name, quoteTrue)}: {value}sample bKitchen Power/bsafe tooltip_text(sample, 1.2 kWh)assert b not in safeassert lt;bgt; in safeassert safe.endswith(1.2 kWh)assert tooltip_text(Solar, 0) Solar: 0print(4 text-rendering checks passed)输入或请求期望语义检查重点普通实体名称保持可读修复不能破坏正常图表无害标签文字按文本显示不得生成新元素数值与单位正确拼接数据格式回归历史与新增数据走同一 renderer存量内容不能绕过修复修复与交付建议P0 升级到受支持的新版本GitHub Advisory Database 将 2026.7.0 标为受影响、2026.7.0 为首次修复版本。[2][3] 鉴于项目公告版本字段存在格式差异生产环境应升级到当前受支持版本而不是依赖异常区间做豁免。升级后清理前端缓存并确认实际资源哈希变化。P1 盘点图表和实体名称来源列出 Statistics Graph 卡片、统计字段类型、集成来源和可修改实体名称的角色。对外部集成提供的名称建立长度和字符审计但不要把输入过滤作为唯一防线输出仍必须按文本上下文编码。P1 做无脚本的渲染回归在隔离环境使用无害标签文字确认 tooltip 显示字面字符而不创建额外 DOM 元素。覆盖折线图、历史数据、缓存数据和多个字段。不要把真实事件处理器复制到生产系统验证。P2 统一前端渲染规范禁止用户可控字段通过字符串拼接进入 HTML formatter优先使用模板文本表达式或 DOM 文本节点。对不得不支持富文本的入口使用明确允许策略并独立验证 URL。安全团队可用静态搜索定位返回 HTML 字符串的 tooltip formatter。总结图表库不是安全边界。任何标签只要进入 HTML 解释上下文就可能从数据变成代码。把安全编码交给统一渲染原语并覆盖存量数据和集成来源才能减少同类遗漏。本文未确认在野利用也不把所有集成名称都视为恶意。

相关推荐

文本纠错系统实战:从编辑距离到BERT的完整方案
文本纠错系统实战:从编辑距离到BERT的完整方案

前段时间接到一个需求,要把线上搜索框里的用户搜索词做一遍自动纠错。看似简单的一个小功能,真做起来才发现里面的门道不少。从最开始的编辑距离、N-gram统计,到后来尝试BERT Mask机制做候选排序,再到上线前的一堆阈值调参和badca… · 2026/9/24 21:58:10

文本纠错实战:从错别字到语义级改写的完整工程链路
文本纠错实战:从错别字到语义级改写的完整工程链路

1. 文本纠错:不止是改错别字,而是一整套工程链路先说个我自己的经历。前些年给一家电商平台做搜索优化,发现用户搜“蓝牙尔机”这个词时,明明“耳机”才是正确写法,但搜索系统就是匹配不到结果。后来才意识到&#xff… · 2026/9/24 21:58:10

反向海淘全攻略:集运工具选择与避坑实战指南
反向海淘全攻略:集运工具选择与避坑实战指南

你有没有过这种体验?人在海外,想吃螺蛳粉、想穿汉服、想给孩子买套中文绘本,打开淘宝逛了一圈什么都想买,最后却在“怎么寄到海外”这一步卡住了。这不是个别现象,我身边好几个朋友都已经把“反向海淘”当成周末固定节… · 2026/9/24 21:58:10

IPv6地址从入门到实战:规则、类型与家庭网络配置
IPv6地址从入门到实战:规则、类型与家庭网络配置

1. 为什么今天要花时间搞明白IPv6地址2. IPv6地址的书写规则与结构拆解3. 地址类型与生命周期:单播、组播、任播与临时地址4. 报头简化与关键机制取舍:IPv6“快”在哪里5. 家庭网络环境下,IPv6能带来哪些实际价值与配置要点其实你早就在用IPv… · 2026/9/24 22:35:44

YOLOv5+Python三合一:人脸识别表情识别异常行为检测系统解析
YOLOv5+Python三合一:人脸识别表情识别异常行为检测系统解析

简介:基于Yolov5Python实现的人脸识别、细粒度表情识别与异常行为检测源码,面向准备毕业设计、期末大作业或课程设计的高校学生,也适合希望快速上手YOLOv5视觉应用、开展人脸与行为分析的开发者。压缩包内共107个文件,以37个py源码… · 2026/9/24 22:35:44

Microsoft Copilot 进阶指南:从聊天到 AI 代理,打造自动化办公流程
Microsoft Copilot 进阶指南:从聊天到 AI 代理,打造自动化办公流程

你是不是也把 Microsoft Copilot 当成了一个“高级搜索引擎”?问一句答一句,拿到答案就关掉,然后继续在 Word、Excel、邮件、会议之间来回切换,手动做那些重复又琐碎的整理工作。如果是这样,那你的 Copilot 可能只发挥… · 2026/9/24 22:35:44

Java final关键字深度解析:变量、方法与JVM内存语义实践
Java final关键字深度解析:变量、方法与JVM内存语义实践

我在团队里带过不少刚转Java的同事,每次看他们代码,发现一个很有意思的现象:final这个关键字几乎人人都知道,但真正能用对的没几个。要么到处final导致代码又长又啰嗦,要么该加final的地方完全没加,等到排查… · 2026/9/24 22:35:44

Agent Skills实战:从设计原则到参数约束与调试方法
Agent Skills实战:从设计原则到参数约束与调试方法

做AI Agent这么长时间,我越来越觉得“技能”才是决定一个Agent上限的东西。模型本身大家用的都差不多,真正拉开差距的,是你给Agent装了什么可复用的执行能力,以及这些能力被设计得有多好用。今天就把我在实际项目和agent-skills这… · 2026/9/24 22:35:44

从继承到装饰器:Java通知模块重构实战,告别组合爆炸
从继承到装饰器:Java通知模块重构实战,告别组合爆炸

大概三年前的某个深夜,我盯着项目里那十七个以Notify开头的类,第一次认真琢磨装饰器模式(Decorator Pattern)到底能救多少代码。当时那是一个消息通知模块,需求方从“先发个短信就行”一路加码到“短信邮件站内信都要、… · 2026/9/24 22:35:31

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码