| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- """
- agent67.tools.safety — 安全机制
- """
- DANGEROUS_PATTERNS = [
- "rm -rf /", "rm -rf ~", "rm -rf .", "sudo rm -rf",
- "dd if=", "mkfs", "format c:",
- "> /dev/sd", ":(){ :|:& };:", # fork bomb
- "chmod -R 777 /", "wget -O- | sh", "curl | sh",
- "shutdown", "reboot", "halt",
- "diskutil eraseDisk", "diskutil partitionDisk",
- "launchctl unload", "csrutil disable",
- "defaults delete /",
- ]
- HIGH_RISK_KEYWORDS = [
- "sudo", "rm ", "kill ", "pkill", "killall",
- "mv /", "chmod", "chown",
- "brew uninstall", "pip uninstall",
- "npm uninstall -g",
- ]
- def is_dangerous(cmd: str) -> bool:
- """检查命令是否危险(绝对禁止执行)"""
- cmd_lower = cmd.lower().strip()
- for pattern in DANGEROUS_PATTERNS:
- if pattern.lower() in cmd_lower:
- return True
- return False
- def needs_confirmation(cmd: str) -> bool:
- """检查命令是否需要用户确认"""
- cmd_lower = cmd.lower().strip()
- for keyword in HIGH_RISK_KEYWORDS:
- if keyword.lower() in cmd_lower:
- return True
- return False
- def ask_user_confirm(action_desc: str) -> bool:
- """请求用户确认高风险操作"""
- print(f"\n⚠️ 高风险操作: {action_desc}")
- response = input(" 确认执行?(y/N): ").strip().lower()
- return response in ("y", "yes", "是")
|