真实面经题目 · 原创解析
前端或应用侧调用大模型 API 时,Prompt 安全设计要覆盖哪些风险和链路?
这题考前端或应用侧调用大模型 API 时的安全链路,回答重点是不要把密钥和权限放到浏览器,Prompt 安全要覆盖注入、越权、敏感信息和输出治理。
真实面经题目 · 原创解析
这题考前端或应用侧调用大模型 API 时的安全链路,回答重点是不要把密钥和权限放到浏览器,Prompt 安全要覆盖注入、越权、敏感信息和输出治理。
我会先说明调用链路:浏览器端不应直接持有大模型 API Key,而是通过业务后端或 BFF 转发,由后端做鉴权、限流、日志脱敏、模型参数控制和工具权限控制。Prompt 安全分几类风险:第一是 prompt injection,用户或外部内容诱导模型忽略系统指令、泄露上下文或执行越权动作;第二是数据泄露,前端可能把用户隐私、内部配置、系统提示或检索到的敏感内容发给模型;第三是权限越界,模型输出或工具调用不能绕过用户真实权限;第四是输出风险,例如违法、敏感、误导和不可解释内容。设计上要把系统指令、用户输入、检索内容、工具结果分层拼接,做输入过滤和上下文隔离,工具调用走后端授权,输出做安全审核和引用校验。前端负责交互和状态,安全边界要放在服务端。
前端页面可以发起请求,但不应该直接调用模型供应商并暴露 API Key。更合理的链路是浏览器请求业务后端,后端校验登录态、额度、场景权限和请求参数,再调用模型服务,并把响应流式或非流式返回前端。
用户输入、网页内容、文档内容和检索结果都可能包含恶意指令,例如要求模型忽略系统规则、输出隐藏提示、伪造工具结果或执行不该执行的动作。Prompt 拼接时要区分可信系统指令和不可信内容,并明确不可信内容只能作为数据处理。
应用侧容易把用户隐私、内部业务规则、系统提示、访问令牌、日志片段或未授权知识库内容发进模型上下文。需要做字段白名单、脱敏、最小上下文、租户隔离和日志治理,尤其不能为了效果把所有页面状态都塞进 prompt。
如果大模型能触发搜索、查库、下单、发消息或修改配置,模型决策不能替代权限系统。每个工具调用都要在后端按真实用户身份检查权限、参数范围和业务规则,高风险动作要二次确认或人工审批。
前端可以做输入长度限制、文件类型限制、敏感字段提示、请求取消、错误展示和安全状态提示,但这些只能提升体验,不能当安全边界。真正的密钥管理、鉴权、限流和审计必须在服务端。
模型输出要根据场景做安全审核、事实校验、引用校验、敏感信息过滤和兜底话术。对于企业知识问答、客服、广告审核等场景,还要保留 trace、prompt 版本和 badcase 反馈,用于持续迭代安全策略。
XSS 攻击浏览器执行环境,prompt injection 攻击模型的指令遵循和上下文边界。它可能来自用户文本、网页、文档或检索内容。
前端能做输入限制和体验提示,但不能作为安全边界。密钥、权限、限流、日志和工具调用控制必须在后端完成。
通常不应该完整下发。系统规则和安全策略应由后端管理,前端只展示必要的用户说明,避免泄露内部策略和绕过方式。
检索前就要按用户、租户、文档权限过滤,不能先检索再让模型判断能不能看。输出还要保留来源和权限审计。