绝大多数 Framer 页面都通过拖拽搭建,无需编写代码。然而真正让风险聚集的,恰恰是那些允许插入的“代码组件”。组件若需调用 API,就得内置密钥;引入外部库时,有时会从某个 URL 导入;而当组件从外部渲染内容时,又必须决定对这份内容给予多大程度的信任。这些看似不起眼的小零件,很可能已经将你的 API 密钥直接暴露在浏览器端。
近日,一位开发者发布了一款免费插件,专门用于扫描 Framer 项目中的风险信息。该插件会读取代码文件并报告其中发现,但实现过程远比预期复杂。原因在于 Framer 中存在两种“代码”:一种是资源库中的代码组件,即 .tsx 文件;另一种是设置面板中带放置位置的下拉脚本——名为“自定义代码”。两者都可能把密钥送到浏览器,但插件仅能读取前者。
开发者发现 Framer 提供的 getCustomCode 方法名称具有误导性,它实际只返回由当前插件自己写入的自定义代码,并不会输出用户在设置中手动添加的脚本。即便在真实项目中粘贴脚本并保存,调用该方法仍只能得到零字符,官方文档中“可以检测由插件设置的代码”这一说明,仔细阅读便揭示了全部真相。在对约五十个 API 读取方法逐一排查后,开发者确认没有任何方法能够返回用户自行添加的自定义代码或站点设置。
因此,扫描器只能聚焦于代码文件。通过 getCodeFiles 方法可以获取文件名称和内容长度,并配合 subscribeToCodeFiles 与 subscribeToRedirects 等订阅能力,在用户编辑的同时重新扫描。实际检查中发现的最常见问题是:为了省去单独搭建密钥保管服务器的麻烦,开发者通常直接把密钥写在组件文件中,并长期留置在那里。该插件目前可识别至少 15 种主流服务的 API 密钥痕迹,为“无代码”建站的安全性敲响了警钟。
热门跟贴