fix(agent-tools): 修复 SQL 安全检查误判的情况
This commit is contained in:
parent
beb62436fd
commit
9d1e2b92f5
@ -41,10 +41,14 @@ class MySQLSecurityChecker:
|
|||||||
if not any(sql_upper.startswith(op) for op in cls.ALLOWED_OPERATIONS):
|
if not any(sql_upper.startswith(op) for op in cls.ALLOWED_OPERATIONS):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# 检查危险关键词
|
# 检查危险关键词 - 只检查语句开头的关键字,避免列名/表名误报
|
||||||
for keyword in cls.DANGEROUS_KEYWORDS:
|
# 提取语句开头的第一个词
|
||||||
if keyword in sql_upper:
|
first_word_match = re.match(r"^\s*(\w+)", sql_upper)
|
||||||
return False
|
first_word = first_word_match.group(1) if first_word_match else ""
|
||||||
|
|
||||||
|
# 只在开头检查危险关键词
|
||||||
|
if first_word in cls.DANGEROUS_KEYWORDS:
|
||||||
|
return False
|
||||||
|
|
||||||
# 检查SQL注入模式
|
# 检查SQL注入模式
|
||||||
sql_injection_patterns = [
|
sql_injection_patterns = [
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user