[P1/高] ConfirmationDialog autoExecute 选项未做二次确认,误点击导致永久自动执行 #40

Open
opened 2026-07-21 21:56:05 +08:00 by thzxx · 0 comments
Owner

问题类型

安全漏洞 / 高 / 前端组件

文件位置

src/components/confirmation/ConfirmationDialog.tsx

问题描述

ConfirmationDialog 提供 "autoExecute" 选项(勾选后该工具永久自动执行):

  • 单次点击即生效
  • 无二次确认
  • 用户可能误点(如想点"批准"但点到"自动执行")
  • 之后所有该工具调用绕过确认,包括危险操作

影响

  • 误点击后所有危险操作自动执行
  • 安全风险高
  • 难以撤销(需要进入设置关闭)

建议修复

  1. 二次确认:勾选后弹出确认对话框
const handleAutoExecuteChange = (checked: boolean) => {
  if (checked) {
    setPendingAutoExecute(true);
    // 弹出二次确认
    openConfirmDialog({
      title: '确认自动执行?',
      message: '此工具将永久自动执行,包括未来的危险操作。确定吗?',
      onConfirm: () => setAutoExecute(true),
    });
  } else {
    setAutoExecute(false);
  }
};
  1. 限制范围:autoExecute 仅对当前会话生效,关闭会话后失效
  2. 分级:critical 风险工具不允许 autoExecute
  3. 审计:记录 autoExecute 启用与禁用
## 问题类型 安全漏洞 / 高 / 前端组件 ## 文件位置 `src/components/confirmation/ConfirmationDialog.tsx` ## 问题描述 ConfirmationDialog 提供 "autoExecute" 选项(勾选后该工具永久自动执行): - 单次点击即生效 - 无二次确认 - 用户可能误点(如想点"批准"但点到"自动执行") - 之后所有该工具调用绕过确认,包括危险操作 ## 影响 - 误点击后所有危险操作自动执行 - 安全风险高 - 难以撤销(需要进入设置关闭) ## 建议修复 1. **二次确认**:勾选后弹出确认对话框 ```ts const handleAutoExecuteChange = (checked: boolean) => { if (checked) { setPendingAutoExecute(true); // 弹出二次确认 openConfirmDialog({ title: '确认自动执行?', message: '此工具将永久自动执行,包括未来的危险操作。确定吗?', onConfirm: () => setAutoExecute(true), }); } else { setAutoExecute(false); } }; ``` 2. **限制范围**:autoExecute 仅对当前会话生效,关闭会话后失效 3. **分级**:critical 风险工具不允许 autoExecute 4. **审计**:记录 autoExecute 启用与禁用
thzxx added the ??????????? labels 2026-07-21 21:56:05 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MetonaTeam/metona-ai-desktop#40