Skip to content

Commit 9d1e2b9

Browse files
committed
fix(agent-tools): 修复 SQL 安全检查误判的情况
1 parent beb6243 commit 9d1e2b9

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/agents/common/toolkits/mysql/security.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,14 @@ def validate_sql(cls, sql: str) -> bool:
4141
if not any(sql_upper.startswith(op) for op in cls.ALLOWED_OPERATIONS):
4242
return False
4343

44-
# 检查危险关键词
45-
for keyword in cls.DANGEROUS_KEYWORDS:
46-
if keyword in sql_upper:
47-
return False
44+
# 检查危险关键词 - 只检查语句开头的关键字,避免列名/表名误报
45+
# 提取语句开头的第一个词
46+
first_word_match = re.match(r"^\s*(\w+)", sql_upper)
47+
first_word = first_word_match.group(1) if first_word_match else ""
48+
49+
# 只在开头检查危险关键词
50+
if first_word in cls.DANGEROUS_KEYWORDS:
51+
return False
4852

4953
# 检查SQL注入模式
5054
sql_injection_patterns = [

0 commit comments

Comments
 (0)