smart-review 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,7 @@ export default [
8
8
  message: '发现硬编码的密码或密钥',
9
9
  suggestion: '使用环境变量或安全的密钥管理服务',
10
10
  flags: 'gi',
11
+ extensions: ['.js', '.ts', '.java', '.cs', '.php', '.py', '.rb', '.go'],
11
12
  excludePatterns: ['//.*', '/\\*[\\s\\S]*?\\*/', '(example|test|demo|placeholder|xxx|123|abc|password|secret)']
12
13
  },
13
14
  {
@@ -17,7 +18,8 @@ export default [
17
18
  risk: 'critical',
18
19
  message: '发现字符串拼接SQL查询,存在SQL注入风险',
19
20
  suggestion: '使用参数化查询或ORM的安全方法',
20
- flags: 'gi'
21
+ flags: 'gi',
22
+ extensions: ['.js', '.ts', '.java', '.cs', '.php', '.py', '.rb', '.go']
21
23
  },
22
24
  {
23
25
  id: 'SEC003',
@@ -26,7 +28,8 @@ export default [
26
28
  risk: 'high',
27
29
  message: '发现直接操作HTML内容,可能存在XSS风险',
28
30
  suggestion: '使用textContent或安全的DOM操作方法',
29
- flags: 'gi'
31
+ flags: 'gi',
32
+ extensions: ['.js', '.ts']
30
33
  },
31
34
  {
32
35
  id: 'SEC004',
@@ -35,7 +38,8 @@ export default [
35
38
  risk: 'critical',
36
39
  message: '发现命令执行函数调用,且可能包含用户输入',
37
40
  suggestion: '避免使用用户输入构造命令,或进行严格的输入验证',
38
- flags: 'gi'
41
+ flags: 'gi',
42
+ extensions: ['.js', '.ts']
39
43
  }
40
44
  ,
41
45
  {
@@ -45,7 +49,8 @@ export default [
45
49
  risk: 'high',
46
50
  message: '可能存在路径遍历或未校验的文件路径使用',
47
51
  suggestion: '对路径进行规范化、白名单校验,并避免直接拼接用户输入',
48
- flags: 'gi'
52
+ flags: 'gi',
53
+ extensions: ['.js', '.ts', '.java', '.php', '.py']
49
54
  },
50
55
  {
51
56
  id: 'SEC006',
@@ -54,7 +59,8 @@ export default [
54
59
  risk: 'high',
55
60
  message: '发现禁用SSL证书校验的HTTP请求',
56
61
  suggestion: '启用证书校验或使用可信证书,避免中间人攻击',
57
- flags: 'gi'
62
+ flags: 'gi',
63
+ extensions: ['.py']
58
64
  },
59
65
  {
60
66
  id: 'SEC007',
@@ -63,7 +69,8 @@ export default [
63
69
  risk: 'high',
64
70
  message: '检测到MD5/SHA1等弱加密算法的使用',
65
71
  suggestion: '使用更安全的算法,如SHA-256/512、Argon2、bcrypt、scrypt',
66
- flags: 'gi'
72
+ flags: 'gi',
73
+ extensions: ['.js', '.ts', '.java']
67
74
  },
68
75
  {
69
76
  id: 'SEC008',
@@ -72,7 +79,8 @@ export default [
72
79
  risk: 'high',
73
80
  message: '检测到硬编码的密钥或访问令牌',
74
81
  suggestion: '将敏感信息存放在安全的密钥管理或环境变量中',
75
- flags: 'gi'
82
+ flags: 'gi',
83
+ extensions: ['.js', '.ts', '.java', '.cs', '.php', '.py', '.rb', '.go']
76
84
  },
77
85
  {
78
86
  id: 'SEC009',
@@ -81,7 +89,8 @@ export default [
81
89
  risk: 'critical',
82
90
  message: '检测到潜在的不安全反序列化操作',
83
91
  suggestion: '使用安全的反序列化方式,例如 yaml.safe_load,避免反序列化不可信数据',
84
- flags: 'gi'
92
+ flags: 'gi',
93
+ extensions: ['.py', '.java', '.php']
85
94
  },
86
95
  {
87
96
  id: 'SEC010',
@@ -90,7 +99,8 @@ export default [
90
99
  risk: 'high',
91
100
  message: '检测到可能由用户输入构成的URL请求,存在SSRF风险',
92
101
  suggestion: '对外部URL进行白名单限制并校验,禁止访问内部地址',
93
- flags: 'gi'
102
+ flags: 'gi',
103
+ extensions: ['.js', '.ts', '.py']
94
104
  },
95
105
  {
96
106
  id: 'SEC011',
@@ -99,7 +109,8 @@ export default [
99
109
  risk: 'high',
100
110
  message: '检测到可能的NoSQL注入(动态拼接查询条件)',
101
111
  suggestion: '使用参数化查询或安全的查询构建器,避免直接拼接',
102
- flags: 'gi'
112
+ flags: 'gi',
113
+ extensions: ['.js', '.ts', '.py', '.rb', '.php']
103
114
  },
104
115
  {
105
116
  id: 'SEC012',
@@ -108,7 +119,8 @@ export default [
108
119
  risk: 'high',
109
120
  message: '检测到基于用户输入的重定向,可能导致开放重定向',
110
121
  suggestion: '对目标URL进行白名单校验或固定化处理',
111
- flags: 'gi'
122
+ flags: 'gi',
123
+ extensions: ['.js', '.ts', '.java']
112
124
  },
113
125
  {
114
126
  id: 'SEC013',
@@ -117,7 +129,8 @@ export default [
117
129
  risk: 'critical',
118
130
  message: '检测到系统命令执行调用,若包含用户输入可能导致命令注入',
119
131
  suggestion: '避免直接调用系统命令,改用安全库或严格白名单参数',
120
- flags: 'gi'
132
+ flags: 'gi',
133
+ extensions: ['.py']
121
134
  },
122
135
  {
123
136
  id: 'SEC014',
@@ -126,7 +139,8 @@ export default [
126
139
  risk: 'medium',
127
140
  message: '检测到在安全相关场景中使用非加密安全的随机数生成方法',
128
141
  suggestion: '使用加密安全的随机数生成器,如 crypto.randomBytes、secrets.SystemRandom',
129
- flags: 'gi'
142
+ flags: 'gi',
143
+ extensions: ['.js', '.ts', '.py', '.java']
130
144
  },
131
145
  {
132
146
  id: 'SEC015',
@@ -135,7 +149,8 @@ export default [
135
149
  risk: 'high',
136
150
  message: '检测到可能导致代码注入的动态执行',
137
151
  suggestion: '避免使用eval/Function,改用安全的解析与映射逻辑',
138
- flags: 'gi'
152
+ flags: 'gi',
153
+ extensions: ['.js', '.ts']
139
154
  },
140
155
  {
141
156
  id: 'SEC016',
@@ -144,7 +159,8 @@ export default [
144
159
  risk: 'high',
145
160
  message: '检测到对对象原型的直接赋值,可能导致原型污染',
146
161
  suggestion: '避免从不可信数据合并到对象原型,使用安全的合并策略',
147
- flags: 'gi'
162
+ flags: 'gi',
163
+ extensions: ['.js', '.ts']
148
164
  },
149
165
  {
150
166
  id: 'SEC017',
@@ -153,7 +169,8 @@ export default [
153
169
  risk: 'critical',
154
170
  message: '检测到通过字符串拼接构造SQL语句的执行',
155
171
  suggestion: '使用PreparedStatement与占位符进行参数化查询',
156
- flags: 'gi'
172
+ flags: 'gi',
173
+ extensions: ['.java']
157
174
  },
158
175
  {
159
176
  id: 'SEC018',
@@ -162,7 +179,8 @@ export default [
162
179
  risk: 'high',
163
180
  message: '检测到直接注入HTML内容,可能导致XSS',
164
181
  suggestion: '使用text()或可信模板引擎进行转义输出',
165
- flags: 'gi'
182
+ flags: 'gi',
183
+ extensions: ['.js']
166
184
  },
167
185
  {
168
186
  id: 'SEC019',
@@ -171,7 +189,8 @@ export default [
171
189
  risk: 'high',
172
190
  message: '检测到设置过大的文件权限,存在安全风险',
173
191
  suggestion: '使用最小权限原则,避免设置777等过宽权限',
174
- flags: 'gi'
192
+ flags: 'gi',
193
+ extensions: ['.php']
175
194
  },
176
195
  {
177
196
  id: 'SEC020',
@@ -180,7 +199,8 @@ export default [
180
199
  risk: 'critical',
181
200
  message: '检测到系统命令执行调用,若包含用户输入可能导致命令注入',
182
201
  suggestion: '避免直接调用系统命令,改用安全库或严格白名单参数',
183
- flags: 'gi'
202
+ flags: 'gi',
203
+ extensions: ['.php', '.cs']
184
204
  },
185
205
  {
186
206
  id: 'SEC021',
@@ -189,7 +209,8 @@ export default [
189
209
  risk: 'high',
190
210
  message: '检测到禁用TLS证书校验的配置',
191
211
  suggestion: '启用证书校验并使用可信CA,避免中间人攻击',
192
- flags: 'gi'
212
+ flags: 'gi',
213
+ extensions: ['.js', '.ts']
193
214
  },
194
215
  {
195
216
  id: 'SEC022',
@@ -198,7 +219,8 @@ export default [
198
219
  risk: 'medium',
199
220
  message: '检测到CORS允许任意来源,可能导致跨域数据泄露',
200
221
  suggestion: '仅对可信来源开放,或使用令牌校验与细粒度策略',
201
- flags: 'gi'
222
+ flags: 'gi',
223
+ extensions: ['.js', '.ts']
202
224
  },
203
225
  {
204
226
  id: 'SEC023',
@@ -207,7 +229,8 @@ export default [
207
229
  risk: 'high',
208
230
  message: '检测到基于字符串拼接的LDAP查询过滤器',
209
231
  suggestion: '使用安全的过滤器构造与参数绑定,避免直接拼接',
210
- flags: 'gi'
232
+ flags: 'gi',
233
+ extensions: ['.java', '.py']
211
234
  },
212
235
  {
213
236
  id: 'SEC024',
@@ -216,7 +239,8 @@ export default [
216
239
  risk: 'high',
217
240
  message: '检测到可能的XML解析,未禁用外部实体可能导致XXE',
218
241
  suggestion: '禁用外部实体解析,或使用安全解析库(如defusedxml)',
219
- flags: 'gi'
242
+ flags: 'gi',
243
+ extensions: ['.py', '.java', '.php']
220
244
  },
221
245
  {
222
246
  id: 'SEC025',
@@ -225,7 +249,8 @@ export default [
225
249
  risk: 'high',
226
250
  message: '检测到跳过主机名校验的HTTPS验证',
227
251
  suggestion: '实现严格的主机名校验逻辑,避免任意通过',
228
- flags: 'gi'
252
+ flags: 'gi',
253
+ extensions: ['.java']
229
254
  },
230
255
  {
231
256
  id: 'SEC026',
@@ -234,7 +259,8 @@ export default [
234
259
  risk: 'critical',
235
260
  message: '检测到全局禁用证书错误的环境变量设置',
236
261
  suggestion: '移除该设置并使用合法证书,或在测试环境隔离',
237
- flags: 'gi'
262
+ flags: 'gi',
263
+ extensions: ['.js', '.ts']
238
264
  },
239
265
  {
240
266
  id: 'SEC027',
@@ -243,7 +269,8 @@ export default [
243
269
  risk: 'high',
244
270
  message: '检测到在连接字符串中硬编码了账号密码',
245
271
  suggestion: '使用环境变量或安全凭据存储,避免明文出现在代码中',
246
- flags: 'gi'
272
+ flags: 'gi',
273
+ extensions: ['.js', '.ts', '.java', '.cs', '.php', '.py', '.rb', '.go']
247
274
  },
248
275
  {
249
276
  id: 'SEC028',
@@ -252,7 +279,8 @@ export default [
252
279
  risk: 'medium',
253
280
  message: '检测到将敏感信息输出到日志',
254
281
  suggestion: '对敏感字段进行脱敏或完全避免记录',
255
- flags: 'gi'
282
+ flags: 'gi',
283
+ extensions: ['.js', '.ts', '.py', '.java', '.php', '.rb']
256
284
  },
257
285
  {
258
286
  id: 'SEC029',
@@ -261,7 +289,8 @@ export default [
261
289
  risk: 'high',
262
290
  message: '检测到可能的批量赋值风险,未进行字段白名单校验',
263
291
  suggestion: '启用强参数/属性白名单,仅允许安全字段写入',
264
- flags: 'gi'
292
+ flags: 'gi',
293
+ extensions: ['.rb', '.php']
265
294
  },
266
295
  {
267
296
  id: 'SEC030',
@@ -270,7 +299,8 @@ export default [
270
299
  risk: 'high',
271
300
  message: '检测到在Go中禁用了TLS证书校验',
272
301
  suggestion: '启用证书校验并使用可信CA,避免中间人攻击',
273
- flags: 'gi'
302
+ flags: 'gi',
303
+ extensions: ['.go']
274
304
  },
275
305
  {
276
306
  id: 'SEC031',
@@ -279,7 +309,8 @@ export default [
279
309
  risk: 'high',
280
310
  message: '检测到覆盖全局证书校验回调,可能接受任意证书',
281
311
  suggestion: '移除该回调并使用正确的证书验证机制',
282
- flags: 'gi'
312
+ flags: 'gi',
313
+ extensions: ['.cs']
283
314
  },
284
315
  {
285
316
  id: 'SEC032',
@@ -288,7 +319,8 @@ export default [
288
319
  risk: 'critical',
289
320
  message: '检测到EF Core使用FromSqlRaw并进行字符串拼接',
290
321
  suggestion: '使用FromSqlInterpolated或参数化查询,避免注入风险',
291
- flags: 'gi'
322
+ flags: 'gi',
323
+ extensions: ['.cs']
292
324
  },
293
325
  {
294
326
  id: 'SEC033',
@@ -297,7 +329,8 @@ export default [
297
329
  risk: 'high',
298
330
  message: '检测到Go中执行系统命令,若包含用户输入可能导致命令注入',
299
331
  suggestion: '避免使用shell -c与拼接命令,采用白名单参数与直接可执行路径',
300
- flags: 'gi'
332
+ flags: 'gi',
333
+ extensions: ['.go']
301
334
  },
302
335
  {
303
336
  id: 'SEC034',
@@ -306,6 +339,7 @@ export default [
306
339
  risk: 'medium',
307
340
  message: '检测到使用math/rand生成随机数,非加密安全',
308
341
  suggestion: '使用crypto/rand或安全随机数库生成敏感令牌与密钥',
309
- flags: 'gi'
342
+ flags: 'gi',
343
+ extensions: ['.go']
310
344
  }
311
345
  ];
@@ -75,7 +75,9 @@
75
75
  "**/Pipfile.lock",
76
76
  "**/.env",
77
77
  "**/.env.*",
78
- "**/config/secrets.*"
78
+ "**/config/secrets.*",
79
+ "**/build/**",
80
+ "**/dist/**"
79
81
  ],
80
82
  "locale": "zh-CN"
81
83
  }