Browse Source

fix(security): 修复XSS过滤正则表达式匹配问题

- 优化事件处理正则表达式,添加单词边界匹配避免误匹配
- 修正属性值匹配逻辑,防止actionArg等属性值被错误过滤
- 保持原有的XSS防护功能完整性
shichen 2 months ago
parent
commit
53e2f30b6b
1 changed files with 2 additions and 2 deletions
  1. 2 2
      app/middleware/SecurityMiddleware.php

+ 2 - 2
app/middleware/SecurityMiddleware.php

@@ -179,8 +179,8 @@ class SecurityMiddleware
179
             '/javascript\s*:/i',
179
             '/javascript\s*:/i',
180
             '/on(load|error|click|mouse|key|focus|blur|submit)\s*=/i',
180
             '/on(load|error|click|mouse|key|focus|blur|submit)\s*=/i',
181
 
181
 
182
-            // 事件处理
183
-            '/<\w+\s+[^>]*on\w+\s*=[^>]*>/i',
182
+            // 事件处理(注意:属性名必须是完整的 onXXX,避免匹配到属性值中的 actionArg 等)
183
+            '/<\w+\s+[^>]*\bon\w+\s*=\s*["\']?[^>]*>/i',
184
 
184
 
185
             // 数据协议
185
             // 数据协议
186
             '/data\s*:/i',
186
             '/data\s*:/i',