Label Studio 企业版 Interfaces 管理设置:API 域名白名单、Iframe 能力与外部脚本安全配置指南
Label Studio 企业版 Interfaces 管理设置API 域名白名单、Iframe 能力与外部脚本安全配置指南【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio本文围绕 Label Studio 企业版的Organization Settings Interfaces管理页面展开系统讲解如何为企业级组织启用 Interfaces 功能并通过「API originsconnect-src 白名单」「Iframe capabilitiesiframe allow 能力位」「Advanced: external scripts外部脚本白名单」三类安全开关为自定义标注界面划定严格的最小权限边界。读完本文你将掌握 Interfaces 的启用流程、各类安全配置项的格式约束与底层 CSP 映射关系以及如何在允许第三方库调用与守住数据安全之间做出正确取舍。适用前提Interfaces 是 Label Studio Enterprise含自托管与 Starter Cloud 的功能。本页面中的安全设置由组织的 Owner/Admin 统一管控并统一作用于组织内所有 Interface——无论是内嵌 iframe、主标注画布、产品内预览还是 Develop Locally 本地开发沙箱参见 Interfaces 概览。启用 Interfaces组织级开关进入Organization Settings Interfaces后第一项操作是打开Allow projects in this organization to use Interfaces开关。开启后Interfaces 能力在整个组织范围内可用项目可以挂载并渲染自定义标注界面关闭后组织内所有项目将无法使用 Interfaces包括基于 Interface 新建项目的入口。该开关是组织级的总闸。开启后再通过下文的三类细化配置来逐项收敛每个 Interface 的网络与设备访问权限。从 Interfaces 概览 可以看出Owner 和 Admin 可以随时启用或禁用创建/编辑 Interface 的能力Annotators 与 Reviewers 默认不接触 Interfaces 功能。API originsInterfaces 的外呼网络白名单API origins定义了 Interface 允许通过fetch、XHR或WebSocket访问的外部主机在浏览器层面直接对应 CSP 的connect-src指令。它决定了「一个标注界面能向哪些外部 API 发起网络请求」。配置规则规则说明格式必须包含完整源scheme host例如https://api.example.com。通配符不允许使用*或*.example.com必须逐个列出具体主机。空列表表示 Interface没有任何对外网络能力只能调用你的 Label Studio 服务器。空白与逗号会被拒绝。一个条目只填一个主机逐条添加。重要提示Label Studio 服务器自身源始终自动放行无需也不应手动添加这里只填写第三方主机。典型场景当 Interface 需要调用一个外部 ML 后端或第三方 API 服务时Owner/Admin 需将该服务源加入白名单否则请求会被浏览器 CSP 拦截。底层实现印证该配置项正是对 CSPconnect-src的运行时注入。在 core/settings/base.py 中Label Studio 默认启用 CSPENABLE_CSP默认为True并声明了基础连接源CSP_CONNECT_SRC ( self, report-sample, https://*.google-analytics.com, ... )默认策略只放行自身源与分析/监控域名Interfaces 管理页中新增的 API origins 会叠加进最终的connect-src策略。同时 core/middleware.py 中的HumanSignalCspMiddleware扩展了django-csp的CSPMiddleware支持将 report-only 策略切换为强制策略——这意味着配置的白名单一旦生效浏览器会实际执行而非仅告警。此外默认CSP_REPORT_ONLY True可用环境变量LS_CSP_REPORT_ONLY调整管理员可在上线前观察违规上报LS_CSP_REPORT_URI再收紧策略。Iframe capabilitiesInterface 的能力位Interfaces 以内嵌 iframe 形式渲染在标注画布中。Iframe capabilities一节用于控制 iframeallow属性中允许申请的能力以点击 chip 的方式逐项开/关。官方刻意将能力列表保持得非常窄Capability典型用途autoplay无需用户交互即可播放音视频。camera读取设备摄像头。clipboard-write以编程方式写入剪贴板。encrypted-media播放 DRM 保护媒体。fullscreen进入全屏模式。geolocation读取用户位置。idle-detection检测用户空闲状态。language-detector使用设备端语言检测 API。microphone读取设备麦克风。on-device-speech-recognition在本地运行语音识别。storage-access请求非分区存储访问。安全警告保持最小化。每开启一个能力就意味着任意一个 Interface包括第三方或实验性 Interface都能调用它。仅当组织内确有 Interface 需要该能力时才开启。例如构建一个「摄像头实时采集 标注」的界面时开启camera构建纯文本标注界面时全部保持关闭。默认关闭是本页面的安全基线。Advanced: external scripts第三方脚本白名单默认情况下Interface 源码是仅 React、默认封闭的沙箱模块只能使用React与标准 hooksuseState、useRef、useEffect、useCallback、useMemo加少量getField辅助函数无法在源码中importnpm 包参见 Interfaces 概览。若 Interface 需要加载第三方script/style标签则必须走本节的白名单。启用Allow external scripts / stylesheets复选框以解锁来源列表然后逐条添加脚本源例如https://cdn.jsdelivr.net。配置规则规则说明Scheme必须是https://HTTP 源会被拒绝。格式仅允许源origin不能包含路径、查询串、凭据或片段。通配符不允许使用通配符。开关联动未勾选Allow external scripts时来源会被忽略取消勾选并在保存时列表会被清空。安全警告从这些源加载的脚本以 Interface 的完整权限运行能够读取 Interface 正在渲染的任何任务数据。只添加你完全信任的主机。大多数组织应当保持本节禁用。两种引入第三方库的合规姿势可对比记忆详见 Use external libraries and services有外部网络需求把库托管在受信任的 CDN 主机上将其加入外部脚本白名单完全无外部网络如气隙/离线部署直接把第三方库bundle 进 Interface 代码本页无需任何配置。如何选择需要配置的区块官方给出了简洁的决策指引可直接对照使用你的需求配置区块Interface 需要调用外部 API/服务fetch/XHR/WebSocketAPI originsInterface 需要从 CDN 加载第三方脚本/样式表Advanced: external scripts使用无需任何外部网络的库已打包进 Interface无需配置参见 Use external libraries and services安全模型总结综合 Interfaces 概览 与本页内容Interfaces 的运行时安全契约可以归纳为三层防线网络层默认无出网能力仅能访问 Label Studio 服务器外部主机必须经API origins逐条白名单放行且不允许通配符映射到 CSPconnect-src。能力层iframeallow能力位默认收敛到极窄清单camera、microphone、geolocation、clipboard-write、fullscreen等均按需开启。代码层源码沙箱默认封闭仅 React hooks getField无 npm import第三方脚本必须走https://白名单且加载脚本拥有读取任务数据的完整权限。三条防线共同遵循「默认拒绝、最小授权、显式放行」原则宁可少配不可滥配。任何一条配置的放宽尤其是外部脚本与设备能力都意味着攻击面的扩大务必结合组织内实际运行的 Interface 需求来决策并在改动后通过标注画布与 Develop Locally 预览验证实际效果。【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →