## 应对团队错位与优先考虑影响 在组织变革期间,一个新的客户体验 (CX) 团队被引入到一个由四个工程团队组成的部落,事先没有进行沟通。虽然目标——改善 CX——是有效的,但该团队的创建源于一个过时的运营模式,侧重于技术组件而非端到端的产品所有权。 工程经理没有挑战这一决定,而是专注于理解团队的任务:构建一个仪表盘以缩短工单解决时间。然而,CX 团队孤立运作,缺乏必要的账户信息访问权限,并且严重依赖工程团队的支持——重现了他们试图解决的问题。 为了实现业务目标,采取了一种务实的方法:构建更简单、团队特定的仪表盘,赋能 CX 自助服务,并通过培训和文档优先考虑自主权。这绕过了集中开发的仪表盘,由于团队内部的技能差距,该仪表盘难以实施。 虽然最初受到对新团队有投入的领导层的抵制,但这种方法迅速改善了关键指标。最终,CX 团队在成立五个月后解散,证明了赋能现有团队在新运营模式下拥有 CX 的有效性。这次经历强调了将团队结构与当前需求对齐,以及优先考虑有影响力的解决方案而非严格遵守过时计划的重要性。
## Scratch 持续存在的 SVG 安全问题
Scratch 一直面临着源于其处理用户提交的 SVG 图像的安全漏洞。 核心问题在于将潜在的恶意 SVG 内容解析到主文档中,即使是短暂的,用于诸如边界框计算之类的操作。 Scratch 的策略一直是逐步改进 SVG 清理,但这种方法始终未能成功。
自 2019 年以来,已经发现了许多绕过方法,包括通过 `<script>` 标签、事件处理程序和 CSS `@import` 语句进行的 XSS 攻击。 更最近,出现了允许通过 `<image>` `href` 属性、CSS `url()` 函数,甚至像 `src()` 和 `image()` 这样的未来 CSS 功能进行 HTTP 泄漏的漏洞。 每次修复都会被绕过,这表明了基于 SVG 的攻击的复杂性和不断演变性。
作者认为,依赖复杂的清理是不可持续的,因为新的 CSS 功能和解析器不一致性不可避免地会产生新的漏洞。 一种更强大的解决方案,在 Scratch 的分支 TurboWarp 中实施,涉及在具有严格内容安全策略 (CSP) 限制的 iframe 内对 SVG 进行沙箱处理。 这利用了浏览器内置的安全机制,减少了对自定义解析的需求,并提供了一种更具未来防御性的防御措施。 最近的发现,甚至包括像 Claude 这样的 AI 模型,不断揭示新的漏洞,突出了持续存在的挑战。