nstarter-http-request 0.1.8 → 0.1.9

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ * 0.1.9
4
+ * 正向代理场景下按实际路由决定 DNS 校验策略,走代理且未命中 `no_proxy` 时跳过目标域名本机 DNS 校验,避免代理出网环境被本机 DNS 解析失败阻塞.
5
+ * 保留 `no_proxy` 直连请求的 DNS 校验与 IP 字面量目标的安全校验,并补充代理模式下的 SSRF 防护边界说明.
6
+
3
7
  * 0.1.8
4
8
  * DNS 校验自动补充 `host` 头时使用小写字段名,并尊重调用方已传入的 `host` / `Host`,避免重复 Host 头导致回调请求失败.
5
9
  * 忽略用户配置中的 `null` / `undefined`,避免覆盖 HTTP 客户端默认配置导致 `undici` 响应体大小校验误报.
@@ -313,7 +313,7 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
313
313
  return (await response.body.formData());
314
314
  }
315
315
  case 'json': {
316
- return (await response.body.json());
316
+ return await this.readJsonResponseBody(response);
317
317
  }
318
318
  default: {
319
319
  const text = await response.body.text();
@@ -331,6 +331,22 @@ class UndiciAdapter extends base_1.BaseHttpAdapter {
331
331
  throw new Error(`Failed to read response body: ${error instanceof Error ? error.message : String(error)}`);
332
332
  }
333
333
  }
334
+ /**
335
+ * 按 axios 的默认兼容行为读取 JSON 响应。
336
+ * 空响应体或非 JSON 文本不应让成功状态码请求因为解析失败变成异常。
337
+ */
338
+ async readJsonResponseBody(response) {
339
+ const text = await response.body.text();
340
+ if (!text) {
341
+ return text;
342
+ }
343
+ try {
344
+ return JSON.parse(text);
345
+ }
346
+ catch {
347
+ return text;
348
+ }
349
+ }
334
350
  /**
335
351
  * 获取状态文本
336
352
  * @param statusCode 状态码
@@ -1 +1 @@
1
- {"version":3,"file":"undici.adapter.js","sourceRoot":"","sources":["../../../src/adapter/undici.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"undici.adapter.js","sourceRoot":"","sources":["../../../src/adapter/undici.adapter.ts"],"names":[],"mappings":"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"}
@@ -116,14 +116,26 @@ class NsHttpClient {
116
116
  async request(options) {
117
117
  const startTime = Date.now();
118
118
  try {
119
+ const forwardProxyDecision = this.resolveForwardProxyDecision(options.url);
119
120
  // 安全验证
120
- const { safeUrl, result: ssrfResult } = await this.ssrfGuard.validateAndGetSafeUrl(options.url);
121
+ const { safeUrl, result: ssrfResult } = await this.ssrfGuard.validateAndGetSafeUrl(options.url, {
122
+ skipDnsValidation: forwardProxyDecision.shouldProxy,
123
+ skipDnsValidationReason: forwardProxyDecision.shouldProxy ? 'forward_proxy' : undefined
124
+ });
121
125
  this.logger.debug('URL validation passed', {
122
126
  originalUrl: options.url,
123
127
  safeUrl,
124
128
  resolvedIps: ssrfResult.resolvedIps,
129
+ dnsValidationSkipped: ssrfResult.dnsValidationSkipped,
130
+ dnsValidationSkipReason: ssrfResult.dnsValidationSkipReason,
125
131
  scenario: options.scenario
126
132
  });
133
+ if (ssrfResult.dnsValidationSkipped && forwardProxyDecision.shouldProxy) {
134
+ this.logger.debug('Skipped target DNS validation because request uses forward proxy', {
135
+ hostname: forwardProxyDecision.hostname,
136
+ proxyUrl: forwardProxyDecision.proxyUrl
137
+ });
138
+ }
127
139
  // 使用安全的 URL 发起请求
128
140
  const safeOptions = {
129
141
  ...options,
@@ -157,7 +169,7 @@ class NsHttpClient {
157
169
  }
158
170
  // 应用正向代理配置
159
171
  if (this.forwardProxy) {
160
- this.applyForwardProxy(safeOptions);
172
+ this.applyForwardProxy(safeOptions, forwardProxyDecision);
161
173
  }
162
174
  // 发起请求
163
175
  const response = await this.adapter.request(safeOptions);
@@ -349,37 +361,98 @@ class NsHttpClient {
349
361
  /**
350
362
  * 应用正向代理配置
351
363
  * @param options 请求选项
364
+ * @param decision 已解析的正向代理路由决策
352
365
  */
353
- applyForwardProxy(options) {
366
+ applyForwardProxy(options, decision = this.resolveForwardProxyDecision(options.url)) {
367
+ this.applyForwardProxyDecision(options, decision);
368
+ }
369
+ /**
370
+ * 解析正向代理路由决策
371
+ * @param url 请求 URL
372
+ */
373
+ resolveForwardProxyDecision(url) {
354
374
  if (!this.forwardProxy || !this.forwardProxy.enabled) {
355
- return;
375
+ return {
376
+ shouldProxy: false,
377
+ reason: 'disabled'
378
+ };
356
379
  }
357
380
  const { https_proxy, http_proxy, no_proxy } = this.forwardProxy;
358
381
  // 解析目标 URL
359
- const targetUrl = new URL(options.url);
382
+ let targetUrl;
383
+ try {
384
+ targetUrl = new URL(url);
385
+ }
386
+ catch {
387
+ return {
388
+ shouldProxy: false,
389
+ reason: 'invalid_url'
390
+ };
391
+ }
360
392
  const hostname = targetUrl.hostname;
361
393
  // 检查 no_proxy 规则(使用传统匹配模式)
362
394
  const noProxyRegExps = utils_1.DomainUtils.createLegacyDomainMatchers(no_proxy ?? []);
363
395
  if (noProxyRegExps.length > 0 && hostname) {
364
396
  for (const noProxyRegex of noProxyRegExps) {
365
397
  if (noProxyRegex.test(hostname)) {
366
- this.logger.debug('Skip proxy for no_proxy matched host', {
398
+ return {
399
+ shouldProxy: false,
400
+ reason: 'no_proxy',
367
401
  hostname,
368
402
  pattern: noProxyRegex.source
369
- });
370
- return;
403
+ };
371
404
  }
372
405
  }
373
406
  }
374
407
  const protocol = targetUrl.protocol || 'http:';
375
- const isHttps = /https:?/.test(protocol);
408
+ if (protocol !== 'http:' && protocol !== 'https:') {
409
+ return {
410
+ shouldProxy: false,
411
+ reason: 'unsupported_protocol',
412
+ hostname,
413
+ protocol
414
+ };
415
+ }
416
+ const isHttps = protocol === 'https:';
376
417
  const proxyUrl = isHttps ? https_proxy : http_proxy;
377
418
  if (!proxyUrl) {
378
- this.logger.warn('Forward proxy enabled but proxy URL not configured', {
419
+ return {
420
+ shouldProxy: false,
421
+ reason: 'missing_proxy_url',
422
+ hostname,
379
423
  protocol
380
- });
424
+ };
425
+ }
426
+ return {
427
+ shouldProxy: true,
428
+ hostname,
429
+ protocol,
430
+ isHttps,
431
+ proxyUrl
432
+ };
433
+ }
434
+ /**
435
+ * 根据已解析的路由决策应用正向代理配置
436
+ * @param options 请求选项
437
+ * @param decision 正向代理路由决策
438
+ */
439
+ applyForwardProxyDecision(options, decision) {
440
+ if (!decision.shouldProxy) {
441
+ if (decision.reason === 'no_proxy') {
442
+ this.logger.debug('Skip proxy for no_proxy matched host', {
443
+ hostname: decision.hostname,
444
+ pattern: decision.pattern
445
+ });
446
+ return;
447
+ }
448
+ if (decision.reason === 'missing_proxy_url') {
449
+ this.logger.warn('Forward proxy enabled but proxy URL not configured', {
450
+ protocol: decision.protocol
451
+ });
452
+ }
381
453
  return;
382
454
  }
455
+ const { proxyUrl, isHttps, protocol } = decision;
383
456
  // 将代理信息附加到请求元数据中,由适配器处理
384
457
  options.meta = {
385
458
  ...options.meta,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -24,9 +24,10 @@ class SsrfGuard {
24
24
  /**
25
25
  * 验证 URL 是否安全
26
26
  * @param url 要验证的 URL
27
+ * @param options 验证选项
27
28
  * @returns 验证结果
28
29
  */
29
- async validate(url) {
30
+ async validate(url, options = {}) {
30
31
  let parsedUrl;
31
32
  try {
32
33
  parsedUrl = new node_url_1.URL(url);
@@ -82,11 +83,17 @@ class SsrfGuard {
82
83
  };
83
84
  }
84
85
  // 第三步:DNS 解析和验证
85
- if (!this.config.enableDnsValidation) {
86
+ if (!this.config.enableDnsValidation || options.skipDnsValidation) {
87
+ // 走正向代理时,目标域名由代理侧解析,本机 DNS 结果不代表实际连接目标。
88
+ const dnsValidationSkipped = Boolean(this.config.enableDnsValidation && options.skipDnsValidation);
86
89
  return {
87
90
  passed: true,
88
91
  originalUrl: url,
89
- hostname
92
+ hostname,
93
+ ...(dnsValidationSkipped && {
94
+ dnsValidationSkipped,
95
+ dnsValidationSkipReason: options.skipDnsValidationReason
96
+ })
90
97
  };
91
98
  }
92
99
  try {
@@ -122,11 +129,12 @@ class SsrfGuard {
122
129
  /**
123
130
  * 验证并返回安全的 URL
124
131
  * @param url 要验证的 URL
132
+ * @param options 验证选项
125
133
  * @returns 安全的 URL 和验证结果
126
134
  * @throws {SecurityError} 验证失败时抛出错误
127
135
  */
128
- async validateAndGetSafeUrl(url) {
129
- const result = await this.validate(url);
136
+ async validateAndGetSafeUrl(url, options = {}) {
137
+ const result = await this.validate(url, options);
130
138
  if (!result.passed) {
131
139
  throw new types_1.SecurityError(result.reason || 'URL validation failed', 'SSRF_VALIDATION_FAILED', url);
132
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ssrf.guard.js","sourceRoot":"","sources":["../../../src/security/ssrf.guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssrf.guard.js","sourceRoot":"","sources":["../../../src/security/ssrf.guard.ts"],"names":[],"mappings":"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"}
@@ -277,7 +277,7 @@ export class UndiciAdapter extends BaseHttpAdapter {
277
277
  return (await response.body.formData());
278
278
  }
279
279
  case 'json': {
280
- return (await response.body.json());
280
+ return await this.readJsonResponseBody(response);
281
281
  }
282
282
  default: {
283
283
  const text = await response.body.text();
@@ -295,6 +295,22 @@ export class UndiciAdapter extends BaseHttpAdapter {
295
295
  throw new Error(`Failed to read response body: ${error instanceof Error ? error.message : String(error)}`);
296
296
  }
297
297
  }
298
+ /**
299
+ * 按 axios 的默认兼容行为读取 JSON 响应。
300
+ * 空响应体或非 JSON 文本不应让成功状态码请求因为解析失败变成异常。
301
+ */
302
+ async readJsonResponseBody(response) {
303
+ const text = await response.body.text();
304
+ if (!text) {
305
+ return text;
306
+ }
307
+ try {
308
+ return JSON.parse(text);
309
+ }
310
+ catch {
311
+ return text;
312
+ }
313
+ }
298
314
  /**
299
315
  * 获取状态文本
300
316
  * @param statusCode 状态码
@@ -1 +1 @@
1
- {"version":3,"file":"undici.adapter.js","sourceRoot":"","sources":["../../../src/adapter/undici.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"undici.adapter.js","sourceRoot":"","sources":["../../../src/adapter/undici.adapter.ts"],"names":[],"mappings":"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"}
@@ -113,14 +113,26 @@ export class NsHttpClient {
113
113
  async request(options) {
114
114
  const startTime = Date.now();
115
115
  try {
116
+ const forwardProxyDecision = this.resolveForwardProxyDecision(options.url);
116
117
  // 安全验证
117
- const { safeUrl, result: ssrfResult } = await this.ssrfGuard.validateAndGetSafeUrl(options.url);
118
+ const { safeUrl, result: ssrfResult } = await this.ssrfGuard.validateAndGetSafeUrl(options.url, {
119
+ skipDnsValidation: forwardProxyDecision.shouldProxy,
120
+ skipDnsValidationReason: forwardProxyDecision.shouldProxy ? 'forward_proxy' : undefined
121
+ });
118
122
  this.logger.debug('URL validation passed', {
119
123
  originalUrl: options.url,
120
124
  safeUrl,
121
125
  resolvedIps: ssrfResult.resolvedIps,
126
+ dnsValidationSkipped: ssrfResult.dnsValidationSkipped,
127
+ dnsValidationSkipReason: ssrfResult.dnsValidationSkipReason,
122
128
  scenario: options.scenario
123
129
  });
130
+ if (ssrfResult.dnsValidationSkipped && forwardProxyDecision.shouldProxy) {
131
+ this.logger.debug('Skipped target DNS validation because request uses forward proxy', {
132
+ hostname: forwardProxyDecision.hostname,
133
+ proxyUrl: forwardProxyDecision.proxyUrl
134
+ });
135
+ }
124
136
  // 使用安全的 URL 发起请求
125
137
  const safeOptions = {
126
138
  ...options,
@@ -154,7 +166,7 @@ export class NsHttpClient {
154
166
  }
155
167
  // 应用正向代理配置
156
168
  if (this.forwardProxy) {
157
- this.applyForwardProxy(safeOptions);
169
+ this.applyForwardProxy(safeOptions, forwardProxyDecision);
158
170
  }
159
171
  // 发起请求
160
172
  const response = await this.adapter.request(safeOptions);
@@ -346,37 +358,98 @@ export class NsHttpClient {
346
358
  /**
347
359
  * 应用正向代理配置
348
360
  * @param options 请求选项
361
+ * @param decision 已解析的正向代理路由决策
349
362
  */
350
- applyForwardProxy(options) {
363
+ applyForwardProxy(options, decision = this.resolveForwardProxyDecision(options.url)) {
364
+ this.applyForwardProxyDecision(options, decision);
365
+ }
366
+ /**
367
+ * 解析正向代理路由决策
368
+ * @param url 请求 URL
369
+ */
370
+ resolveForwardProxyDecision(url) {
351
371
  if (!this.forwardProxy || !this.forwardProxy.enabled) {
352
- return;
372
+ return {
373
+ shouldProxy: false,
374
+ reason: 'disabled'
375
+ };
353
376
  }
354
377
  const { https_proxy, http_proxy, no_proxy } = this.forwardProxy;
355
378
  // 解析目标 URL
356
- const targetUrl = new URL(options.url);
379
+ let targetUrl;
380
+ try {
381
+ targetUrl = new URL(url);
382
+ }
383
+ catch {
384
+ return {
385
+ shouldProxy: false,
386
+ reason: 'invalid_url'
387
+ };
388
+ }
357
389
  const hostname = targetUrl.hostname;
358
390
  // 检查 no_proxy 规则(使用传统匹配模式)
359
391
  const noProxyRegExps = DomainUtils.createLegacyDomainMatchers(no_proxy ?? []);
360
392
  if (noProxyRegExps.length > 0 && hostname) {
361
393
  for (const noProxyRegex of noProxyRegExps) {
362
394
  if (noProxyRegex.test(hostname)) {
363
- this.logger.debug('Skip proxy for no_proxy matched host', {
395
+ return {
396
+ shouldProxy: false,
397
+ reason: 'no_proxy',
364
398
  hostname,
365
399
  pattern: noProxyRegex.source
366
- });
367
- return;
400
+ };
368
401
  }
369
402
  }
370
403
  }
371
404
  const protocol = targetUrl.protocol || 'http:';
372
- const isHttps = /https:?/.test(protocol);
405
+ if (protocol !== 'http:' && protocol !== 'https:') {
406
+ return {
407
+ shouldProxy: false,
408
+ reason: 'unsupported_protocol',
409
+ hostname,
410
+ protocol
411
+ };
412
+ }
413
+ const isHttps = protocol === 'https:';
373
414
  const proxyUrl = isHttps ? https_proxy : http_proxy;
374
415
  if (!proxyUrl) {
375
- this.logger.warn('Forward proxy enabled but proxy URL not configured', {
416
+ return {
417
+ shouldProxy: false,
418
+ reason: 'missing_proxy_url',
419
+ hostname,
376
420
  protocol
377
- });
421
+ };
422
+ }
423
+ return {
424
+ shouldProxy: true,
425
+ hostname,
426
+ protocol,
427
+ isHttps,
428
+ proxyUrl
429
+ };
430
+ }
431
+ /**
432
+ * 根据已解析的路由决策应用正向代理配置
433
+ * @param options 请求选项
434
+ * @param decision 正向代理路由决策
435
+ */
436
+ applyForwardProxyDecision(options, decision) {
437
+ if (!decision.shouldProxy) {
438
+ if (decision.reason === 'no_proxy') {
439
+ this.logger.debug('Skip proxy for no_proxy matched host', {
440
+ hostname: decision.hostname,
441
+ pattern: decision.pattern
442
+ });
443
+ return;
444
+ }
445
+ if (decision.reason === 'missing_proxy_url') {
446
+ this.logger.warn('Forward proxy enabled but proxy URL not configured', {
447
+ protocol: decision.protocol
448
+ });
449
+ }
378
450
  return;
379
451
  }
452
+ const { proxyUrl, isHttps, protocol } = decision;
380
453
  // 将代理信息附加到请求元数据中,由适配器处理
381
454
  options.meta = {
382
455
  ...options.meta,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -21,9 +21,10 @@ export class SsrfGuard {
21
21
  /**
22
22
  * 验证 URL 是否安全
23
23
  * @param url 要验证的 URL
24
+ * @param options 验证选项
24
25
  * @returns 验证结果
25
26
  */
26
- async validate(url) {
27
+ async validate(url, options = {}) {
27
28
  let parsedUrl;
28
29
  try {
29
30
  parsedUrl = new URL(url);
@@ -79,11 +80,17 @@ export class SsrfGuard {
79
80
  };
80
81
  }
81
82
  // 第三步:DNS 解析和验证
82
- if (!this.config.enableDnsValidation) {
83
+ if (!this.config.enableDnsValidation || options.skipDnsValidation) {
84
+ // 走正向代理时,目标域名由代理侧解析,本机 DNS 结果不代表实际连接目标。
85
+ const dnsValidationSkipped = Boolean(this.config.enableDnsValidation && options.skipDnsValidation);
83
86
  return {
84
87
  passed: true,
85
88
  originalUrl: url,
86
- hostname
89
+ hostname,
90
+ ...(dnsValidationSkipped && {
91
+ dnsValidationSkipped,
92
+ dnsValidationSkipReason: options.skipDnsValidationReason
93
+ })
87
94
  };
88
95
  }
89
96
  try {
@@ -119,11 +126,12 @@ export class SsrfGuard {
119
126
  /**
120
127
  * 验证并返回安全的 URL
121
128
  * @param url 要验证的 URL
129
+ * @param options 验证选项
122
130
  * @returns 安全的 URL 和验证结果
123
131
  * @throws {SecurityError} 验证失败时抛出错误
124
132
  */
125
- async validateAndGetSafeUrl(url) {
126
- const result = await this.validate(url);
133
+ async validateAndGetSafeUrl(url, options = {}) {
134
+ const result = await this.validate(url, options);
127
135
  if (!result.passed) {
128
136
  throw new SecurityError(result.reason || 'URL validation failed', 'SSRF_VALIDATION_FAILED', url);
129
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ssrf.guard.js","sourceRoot":"","sources":["../../../src/security/ssrf.guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssrf.guard.js","sourceRoot":"","sources":["../../../src/security/ssrf.guard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAOhC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;GAEG;AACH,MAAM,OAAO,SAAS;IAKlB,YAAY,MAAsB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAChC,MAAM,CAAC,WAAW,EAClB,SAAS,EAAG,iBAAiB;QAC7B,MAAM,CAAC,eAAe,CACzB,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,UAAoC,EAAE;QACrE,IAAI,SAAc,CAAC;QAEnB,IAAI,CAAC;YACD,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO;gBACH,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,GAAG;gBAChB,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,oBAAoB;aAC/B,CAAC;QACN,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAEpC,mBAAmB;QACnB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO;gBACH,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,GAAG;gBAChB,QAAQ;gBACR,MAAM,EAAE,aAAa,CAAC,MAAM;aAC/B,CAAC;QACN,CAAC;QAED,kBAAkB;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YAClB,yBAAyB;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBAClC,OAAO;oBACH,MAAM,EAAE,IAAI;oBACZ,WAAW,EAAE,GAAG;oBAChB,QAAQ;oBACR,WAAW,EAAE,CAAC,QAAQ,CAAC;oBACvB,MAAM,EAAE,QAAQ;iBACnB,CAAC;YACN,CAAC;YAED,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAChF,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO;oBACH,MAAM,EAAE,KAAK;oBACb,WAAW,EAAE,GAAG;oBAChB,QAAQ;oBACR,WAAW,EAAE,CAAC,QAAQ,CAAC;oBACvB,MAAM,EAAE,YAAY,CAAC,MAAM;iBAC9B,CAAC;YACN,CAAC;YAED,OAAO;gBACH,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,GAAG;gBAChB,QAAQ;gBACR,WAAW,EAAE,CAAC,QAAQ,CAAC;gBACvB,MAAM,EAAE,QAAQ;aACnB,CAAC;QACN,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAChE,wCAAwC;YACxC,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACnG,OAAO;gBACH,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,GAAG;gBAChB,QAAQ;gBACR,GAAG,CAAC,oBAAoB,IAAI;oBACxB,oBAAoB;oBACpB,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;iBAC3D,CAAC;aACL,CAAC;QACN,CAAC;QAED,IAAI,CAAC;YACD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAClF,QAAQ,EACR,IAAI,CAAC,MAAM,CAAC,cAAc,CAC7B,CAAC;YAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,OAAO;oBACH,MAAM,EAAE,KAAK;oBACb,WAAW,EAAE,GAAG;oBAChB,QAAQ;oBACR,WAAW,EAAE,SAAS,CAAC,SAAS;oBAChC,MAAM,EAAE,wCAAyC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAE,EAAE;iBAC5E,CAAC;YACN,CAAC;YAED,iBAAiB;YACjB,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAEtC,OAAO;gBACH,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,GAAG;gBAChB,QAAQ;gBACR,WAAW,EAAE,SAAS,CAAC,SAAS;gBAChC,MAAM;aACT,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO;gBACH,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,GAAG;gBAChB,QAAQ;gBACR,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aACjE,CAAC;QACN,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,qBAAqB,CAC9B,GAAW,EACX,UAAoC,EAAE;QAEtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEjD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,aAAa,CACnB,MAAM,CAAC,MAAM,IAAI,uBAAuB,EACxC,wBAAwB,EACxB,GAAG,CACN,CAAC;QACN,CAAC;QAED,OAAO;YACH,OAAO,EAAE,GAAG;YACZ,MAAM;SACT,CAAC;IACN,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,MAA+B;QAC/C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QAE5C,+BAA+B;QAC/B,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC3E,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAChC,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,eAAe,CAC9B,CAAC;QACN,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAChC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EACzC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAC5C,CAAC;QACN,CAAC;IACL,CAAC;IAED;;OAEG;IACI,aAAa;QAChB,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAED;;;OAGG;IACI,eAAe;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,oBAAoB;QACvB,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACI,SAAS;QACZ,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;CACJ"}
@@ -75,6 +75,11 @@ export declare class UndiciAdapter extends BaseHttpAdapter {
75
75
  * @param responseType 响应类型
76
76
  */
77
77
  private readResponseBody;
78
+ /**
79
+ * 按 axios 的默认兼容行为读取 JSON 响应。
80
+ * 空响应体或非 JSON 文本不应让成功状态码请求因为解析失败变成异常。
81
+ */
82
+ private readJsonResponseBody;
78
83
  /**
79
84
  * 获取状态文本
80
85
  * @param statusCode 状态码
@@ -1 +1 @@
1
- {"version":3,"file":"undici.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapter/undici.adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACR,kBAAkB,EAClB,YAAY,EAEf,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAOzC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C;;GAEG;AACH,qBAAa,aAAc,SAAQ,eAAe;IAC9C,SAAgB,IAAI,wBAAkC;IAEtD;;OAEG;IACI,WAAW,IAAI,OAAO;IAI7B;;;OAGG;cACa,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IA0CrF;;;OAGG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IA0BvB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA2B9B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA0B9B;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;;OAIG;YACW,gBAAgB;IAsC9B;;;OAGG;IACH,OAAO,CAAC,aAAa;CAGxB"}
1
+ {"version":3,"file":"undici.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapter/undici.adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACR,kBAAkB,EAClB,YAAY,EAEf,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAOzC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C;;GAEG;AACH,qBAAa,aAAc,SAAQ,eAAe;IAC9C,SAAgB,IAAI,wBAAkC;IAEtD;;OAEG;IACI,WAAW,IAAI,OAAO;IAI7B;;;OAGG;cACa,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IA0CrF;;;OAGG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IA0BvB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA2B9B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA0B9B;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;;OAIG;YACW,gBAAgB;IAsC9B;;;OAGG;YACW,oBAAoB;IAalC;;;OAGG;IACH,OAAO,CAAC,aAAa;CAGxB"}
@@ -94,8 +94,20 @@ export declare class NsHttpClient implements IHttpClient {
94
94
  /**
95
95
  * 应用正向代理配置
96
96
  * @param options 请求选项
97
+ * @param decision 已解析的正向代理路由决策
97
98
  */
98
99
  private applyForwardProxy;
100
+ /**
101
+ * 解析正向代理路由决策
102
+ * @param url 请求 URL
103
+ */
104
+ private resolveForwardProxyDecision;
105
+ /**
106
+ * 根据已解析的路由决策应用正向代理配置
107
+ * @param options 请求选项
108
+ * @param decision 正向代理路由决策
109
+ */
110
+ private applyForwardProxyDecision;
99
111
  /**
100
112
  * 清空 DNS 缓存
101
113
  */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * SSRF 防护
3
3
  * 整合 IP、DNS 和 URL 验证,防止服务器端请求伪造攻击
4
4
  */
5
- import type { ISsrfGuard, SecurityConfig, SsrfGuardResult } from '../types';
5
+ import type { ISsrfGuard, SecurityConfig, SsrfGuardResult, SsrfGuardValidateOptions } from '../types';
6
6
  /**
7
7
  * SSRF 防护类
8
8
  */
@@ -14,16 +14,18 @@ export declare class SsrfGuard implements ISsrfGuard {
14
14
  /**
15
15
  * 验证 URL 是否安全
16
16
  * @param url 要验证的 URL
17
+ * @param options 验证选项
17
18
  * @returns 验证结果
18
19
  */
19
- validate(url: string): Promise<SsrfGuardResult>;
20
+ validate(url: string, options?: SsrfGuardValidateOptions): Promise<SsrfGuardResult>;
20
21
  /**
21
22
  * 验证并返回安全的 URL
22
23
  * @param url 要验证的 URL
24
+ * @param options 验证选项
23
25
  * @returns 安全的 URL 和验证结果
24
26
  * @throws {SecurityError} 验证失败时抛出错误
25
27
  */
26
- validateAndGetSafeUrl(url: string): Promise<{
28
+ validateAndGetSafeUrl(url: string, options?: SsrfGuardValidateOptions): Promise<{
27
29
  safeUrl: string;
28
30
  result: SsrfGuardResult;
29
31
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"ssrf.guard.d.ts","sourceRoot":"","sources":["../../../src/security/ssrf.guard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACR,UAAU,EACV,cAAc,EACd,eAAe,EAClB,MAAM,UAAU,CAAC;AAMlB;;GAEG;AACH,qBAAa,SAAU,YAAW,UAAU;IACxC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAUlC;;;;OAIG;IACU,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA0G5D;;;;;OAKG;IACU,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC;IAiBtG;;;OAGG;IACI,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAoB1D;;OAEG;IACI,aAAa,IAAI,IAAI;IAI5B;;;OAGG;IACI,eAAe,IAAI,MAAM;IAIhC;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAInC;;;OAGG;IACI,SAAS,IAAI,cAAc;CAGrC"}
1
+ {"version":3,"file":"ssrf.guard.d.ts","sourceRoot":"","sources":["../../../src/security/ssrf.guard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACR,UAAU,EACV,cAAc,EACd,eAAe,EACf,wBAAwB,EAC3B,MAAM,UAAU,CAAC;AAMlB;;GAEG;AACH,qBAAa,SAAU,YAAW,UAAU;IACxC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAUlC;;;;;OAKG;IACU,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,eAAe,CAAC;IAgHpG;;;;;;OAMG;IACU,qBAAqB,CAC9B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,wBAA6B,GACvC,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC;IAiBxD;;;OAGG;IACI,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAoB1D;;OAEG;IACI,aAAa,IAAI,IAAI;IAI5B;;;OAGG;IACI,eAAe,IAAI,MAAM;IAIhC;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAInC;;;OAGG;IACI,SAAS,IAAI,cAAc;CAGrC"}
@@ -65,9 +65,22 @@ export interface SsrfGuardResult {
65
65
  resolvedIps?: string[];
66
66
  /** 安全的 IP 地址(如果进行了 DNS 解析且通过验证) */
67
67
  safeIp?: string;
68
+ /** 是否因外部路由决策跳过目标域名 DNS 校验 */
69
+ dnsValidationSkipped?: boolean;
70
+ /** 跳过目标域名 DNS 校验的原因 */
71
+ dnsValidationSkipReason?: string;
68
72
  /** 失败原因 */
69
73
  reason?: string;
70
74
  }
75
+ /**
76
+ * SSRF 防护验证选项
77
+ */
78
+ export interface SsrfGuardValidateOptions {
79
+ /** 跳过目标域名 DNS 校验,通常用于目标域名由正向代理解析的场景 */
80
+ skipDnsValidation?: boolean;
81
+ /** 跳过目标域名 DNS 校验的原因 */
82
+ skipDnsValidationReason?: string;
83
+ }
71
84
  /**
72
85
  * SSRF 防护接口
73
86
  */
@@ -75,16 +88,18 @@ export interface ISsrfGuard {
75
88
  /**
76
89
  * 验证 URL 是否安全
77
90
  * @param url 要验证的 URL
91
+ * @param options 验证选项
78
92
  * @returns 验证结果
79
93
  */
80
- validate: (url: string) => Promise<SsrfGuardResult>;
94
+ validate: (url: string, options?: SsrfGuardValidateOptions) => Promise<SsrfGuardResult>;
81
95
  /**
82
96
  * 验证并返回安全的 URL
83
97
  * @param url 要验证的 URL
98
+ * @param options 验证选项
84
99
  * @returns 安全的 URL 和验证结果
85
100
  * @throws {SecurityError} 验证失败时抛出错误
86
101
  */
87
- validateAndGetSafeUrl: (url: string) => Promise<{
102
+ validateAndGetSafeUrl: (url: string, options?: SsrfGuardValidateOptions) => Promise<{
88
103
  safeUrl: string;
89
104
  result: SsrfGuardResult;
90
105
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/types/security.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,SAAS;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,WAAW;IACX,KAAK,EAAE,OAAO,CAAC;IACf,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,eAAe;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,qBAAqB;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,WAAW;IACX,KAAK,EAAE,OAAO,CAAC;IACf,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,aAAa;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB;;;;OAIG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IAE9F;;;OAGG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAExD;;OAEG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B;;;OAGG;IACH,eAAe,EAAE,MAAM,MAAM,CAAC;IAE9B;;OAEG;IACH,oBAAoB,EAAE,MAAM,IAAI,CAAC;IAEjC;;;OAGG;IACH,SAAS,EAAE,MAAM,cAAc,CAAC;CACnC"}
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/types/security.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,SAAS;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,WAAW;IACX,KAAK,EAAE,OAAO,CAAC;IACf,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,eAAe;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,qBAAqB;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,WAAW;IACX,KAAK,EAAE,OAAO,CAAC;IACf,UAAU;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,aAAa;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,uBAAuB;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,WAAW;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAExF;;;;;;OAMG;IACH,qBAAqB,EAAE,CACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,wBAAwB,KACjC,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IAE3D;;;OAGG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAExD;;OAEG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B;;;OAGG;IACH,eAAe,EAAE,MAAM,MAAM,CAAC;IAE9B;;OAEG;IACH,oBAAoB,EAAE,MAAM,IAAI,CAAC;IAEjC;;;OAGG;IACH,SAAS,EAAE,MAAM,cAAc,CAAC;CACnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nstarter-http-request",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "nstarter HTTP 请求客户端插件",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -347,7 +347,7 @@ export class UndiciAdapter extends BaseHttpAdapter {
347
347
  return (await response.body.formData()) as T;
348
348
  }
349
349
  case 'json': {
350
- return (await response.body.json()) as T;
350
+ return await this.readJsonResponseBody<T>(response);
351
351
  }
352
352
  default: {
353
353
  const text = await response.body.text();
@@ -365,6 +365,23 @@ export class UndiciAdapter extends BaseHttpAdapter {
365
365
  }
366
366
  }
367
367
 
368
+ /**
369
+ * 按 axios 的默认兼容行为读取 JSON 响应。
370
+ * 空响应体或非 JSON 文本不应让成功状态码请求因为解析失败变成异常。
371
+ */
372
+ private async readJsonResponseBody<T>(response: Dispatcher.ResponseData): Promise<T> {
373
+ const text = await response.body.text();
374
+ if (!text) {
375
+ return text as T;
376
+ }
377
+
378
+ try {
379
+ return JSON.parse(text) as T;
380
+ } catch {
381
+ return text as T;
382
+ }
383
+ }
384
+
368
385
  /**
369
386
  * 获取状态文本
370
387
  * @param statusCode 状态码
package/src/client.ts CHANGED
@@ -41,6 +41,20 @@ import {
41
41
  } from 'node:stream';
42
42
  import { MetricsTransform } from './stream';
43
43
 
44
+ type ForwardProxyDecision = {
45
+ shouldProxy: false,
46
+ reason: 'disabled' | 'invalid_url' | 'unsupported_protocol' | 'no_proxy' | 'missing_proxy_url',
47
+ hostname?: string,
48
+ protocol?: string,
49
+ pattern?: string
50
+ } | {
51
+ shouldProxy: true,
52
+ hostname: string,
53
+ protocol: string,
54
+ isHttps: boolean,
55
+ proxyUrl: string
56
+ };
57
+
44
58
  /**
45
59
  * HTTP 客户端
46
60
  */
@@ -175,16 +189,33 @@ export class NsHttpClient implements IHttpClient {
175
189
  const startTime = Date.now();
176
190
 
177
191
  try {
192
+ const forwardProxyDecision = this.resolveForwardProxyDecision(options.url);
193
+
178
194
  // 安全验证
179
- const { safeUrl, result: ssrfResult } = await this.ssrfGuard.validateAndGetSafeUrl(options.url);
195
+ const { safeUrl, result: ssrfResult } = await this.ssrfGuard.validateAndGetSafeUrl(
196
+ options.url,
197
+ {
198
+ skipDnsValidation: forwardProxyDecision.shouldProxy,
199
+ skipDnsValidationReason: forwardProxyDecision.shouldProxy ? 'forward_proxy' : undefined
200
+ }
201
+ );
180
202
 
181
203
  this.logger.debug('URL validation passed', {
182
204
  originalUrl: options.url,
183
205
  safeUrl,
184
206
  resolvedIps: ssrfResult.resolvedIps,
207
+ dnsValidationSkipped: ssrfResult.dnsValidationSkipped,
208
+ dnsValidationSkipReason: ssrfResult.dnsValidationSkipReason,
185
209
  scenario: options.scenario
186
210
  });
187
211
 
212
+ if (ssrfResult.dnsValidationSkipped && forwardProxyDecision.shouldProxy) {
213
+ this.logger.debug('Skipped target DNS validation because request uses forward proxy', {
214
+ hostname: forwardProxyDecision.hostname,
215
+ proxyUrl: forwardProxyDecision.proxyUrl
216
+ });
217
+ }
218
+
188
219
  // 使用安全的 URL 发起请求
189
220
  const safeOptions: HttpRequestOptions = {
190
221
  ...options,
@@ -221,7 +252,7 @@ export class NsHttpClient implements IHttpClient {
221
252
 
222
253
  // 应用正向代理配置
223
254
  if (this.forwardProxy) {
224
- this.applyForwardProxy(safeOptions);
255
+ this.applyForwardProxy(safeOptions, forwardProxyDecision);
225
256
  }
226
257
 
227
258
  // 发起请求
@@ -483,16 +514,40 @@ export class NsHttpClient implements IHttpClient {
483
514
  /**
484
515
  * 应用正向代理配置
485
516
  * @param options 请求选项
517
+ * @param decision 已解析的正向代理路由决策
518
+ */
519
+ private applyForwardProxy(
520
+ options: HttpRequestOptions,
521
+ decision = this.resolveForwardProxyDecision(options.url)
522
+ ): void {
523
+ this.applyForwardProxyDecision(options, decision);
524
+ }
525
+
526
+ /**
527
+ * 解析正向代理路由决策
528
+ * @param url 请求 URL
486
529
  */
487
- private applyForwardProxy(options: HttpRequestOptions): void {
530
+ private resolveForwardProxyDecision(url: string): ForwardProxyDecision {
488
531
  if (!this.forwardProxy || !this.forwardProxy.enabled) {
489
- return;
532
+ return {
533
+ shouldProxy: false,
534
+ reason: 'disabled'
535
+ };
490
536
  }
491
537
 
492
538
  const { https_proxy, http_proxy, no_proxy } = this.forwardProxy;
493
539
 
494
540
  // 解析目标 URL
495
- const targetUrl = new URL(options.url);
541
+ let targetUrl: URL;
542
+ try {
543
+ targetUrl = new URL(url);
544
+ } catch {
545
+ return {
546
+ shouldProxy: false,
547
+ reason: 'invalid_url'
548
+ };
549
+ }
550
+
496
551
  const hostname = targetUrl.hostname;
497
552
 
498
553
  // 检查 no_proxy 规则(使用传统匹配模式)
@@ -500,26 +555,72 @@ export class NsHttpClient implements IHttpClient {
500
555
  if (noProxyRegExps.length > 0 && hostname) {
501
556
  for (const noProxyRegex of noProxyRegExps) {
502
557
  if (noProxyRegex.test(hostname)) {
503
- this.logger.debug('Skip proxy for no_proxy matched host', {
558
+ return {
559
+ shouldProxy: false,
560
+ reason: 'no_proxy',
504
561
  hostname,
505
562
  pattern: noProxyRegex.source
506
- });
507
- return;
563
+ };
508
564
  }
509
565
  }
510
566
  }
511
567
 
512
568
  const protocol = targetUrl.protocol || 'http:';
513
- const isHttps = /https:?/.test(protocol);
569
+ if (protocol !== 'http:' && protocol !== 'https:') {
570
+ return {
571
+ shouldProxy: false,
572
+ reason: 'unsupported_protocol',
573
+ hostname,
574
+ protocol
575
+ };
576
+ }
577
+
578
+ const isHttps = protocol === 'https:';
514
579
  const proxyUrl = isHttps ? https_proxy : http_proxy;
515
580
 
516
581
  if (!proxyUrl) {
517
- this.logger.warn('Forward proxy enabled but proxy URL not configured', {
582
+ return {
583
+ shouldProxy: false,
584
+ reason: 'missing_proxy_url',
585
+ hostname,
518
586
  protocol
519
- });
587
+ };
588
+ }
589
+
590
+ return {
591
+ shouldProxy: true,
592
+ hostname,
593
+ protocol,
594
+ isHttps,
595
+ proxyUrl
596
+ };
597
+ }
598
+
599
+ /**
600
+ * 根据已解析的路由决策应用正向代理配置
601
+ * @param options 请求选项
602
+ * @param decision 正向代理路由决策
603
+ */
604
+ private applyForwardProxyDecision(options: HttpRequestOptions, decision: ForwardProxyDecision): void {
605
+ if (!decision.shouldProxy) {
606
+ if (decision.reason === 'no_proxy') {
607
+ this.logger.debug('Skip proxy for no_proxy matched host', {
608
+ hostname: decision.hostname,
609
+ pattern: decision.pattern
610
+ });
611
+ return;
612
+ }
613
+
614
+ if (decision.reason === 'missing_proxy_url') {
615
+ this.logger.warn('Forward proxy enabled but proxy URL not configured', {
616
+ protocol: decision.protocol
617
+ });
618
+ }
520
619
  return;
521
620
  }
522
621
 
622
+ const { proxyUrl, isHttps, protocol } = decision;
623
+
523
624
  // 将代理信息附加到请求元数据中,由适配器处理
524
625
  options.meta = {
525
626
  ...options.meta,
@@ -9,6 +9,7 @@ import type {
9
9
  ISsrfGuard,
10
10
  SecurityConfig,
11
11
  SsrfGuardResult,
12
+ SsrfGuardValidateOptions
12
13
  } from '../types';
13
14
  import { SecurityError } from '../types';
14
15
  import { DnsValidator } from './dns.validator';
@@ -36,9 +37,10 @@ export class SsrfGuard implements ISsrfGuard {
36
37
  /**
37
38
  * 验证 URL 是否安全
38
39
  * @param url 要验证的 URL
40
+ * @param options 验证选项
39
41
  * @returns 验证结果
40
42
  */
41
- public async validate(url: string): Promise<SsrfGuardResult> {
43
+ public async validate(url: string, options: SsrfGuardValidateOptions = {}): Promise<SsrfGuardResult> {
42
44
  let parsedUrl: URL;
43
45
 
44
46
  try {
@@ -100,11 +102,17 @@ export class SsrfGuard implements ISsrfGuard {
100
102
  }
101
103
 
102
104
  // 第三步:DNS 解析和验证
103
- if (!this.config.enableDnsValidation) {
105
+ if (!this.config.enableDnsValidation || options.skipDnsValidation) {
106
+ // 走正向代理时,目标域名由代理侧解析,本机 DNS 结果不代表实际连接目标。
107
+ const dnsValidationSkipped = Boolean(this.config.enableDnsValidation && options.skipDnsValidation);
104
108
  return {
105
109
  passed: true,
106
110
  originalUrl: url,
107
- hostname
111
+ hostname,
112
+ ...(dnsValidationSkipped && {
113
+ dnsValidationSkipped,
114
+ dnsValidationSkipReason: options.skipDnsValidationReason
115
+ })
108
116
  };
109
117
  }
110
118
 
@@ -147,11 +155,15 @@ export class SsrfGuard implements ISsrfGuard {
147
155
  /**
148
156
  * 验证并返回安全的 URL
149
157
  * @param url 要验证的 URL
158
+ * @param options 验证选项
150
159
  * @returns 安全的 URL 和验证结果
151
160
  * @throws {SecurityError} 验证失败时抛出错误
152
161
  */
153
- public async validateAndGetSafeUrl(url: string): Promise<{ safeUrl: string, result: SsrfGuardResult }> {
154
- const result = await this.validate(url);
162
+ public async validateAndGetSafeUrl(
163
+ url: string,
164
+ options: SsrfGuardValidateOptions = {}
165
+ ): Promise<{ safeUrl: string, result: SsrfGuardResult }> {
166
+ const result = await this.validate(url, options);
155
167
 
156
168
  if (!result.passed) {
157
169
  throw new SecurityError(
@@ -221,4 +233,3 @@ export class SsrfGuard implements ISsrfGuard {
221
233
  return { ...this.config };
222
234
  }
223
235
  }
224
-
@@ -71,10 +71,24 @@ export interface SsrfGuardResult {
71
71
  resolvedIps?: string[];
72
72
  /** 安全的 IP 地址(如果进行了 DNS 解析且通过验证) */
73
73
  safeIp?: string;
74
+ /** 是否因外部路由决策跳过目标域名 DNS 校验 */
75
+ dnsValidationSkipped?: boolean;
76
+ /** 跳过目标域名 DNS 校验的原因 */
77
+ dnsValidationSkipReason?: string;
74
78
  /** 失败原因 */
75
79
  reason?: string;
76
80
  }
77
81
 
82
+ /**
83
+ * SSRF 防护验证选项
84
+ */
85
+ export interface SsrfGuardValidateOptions {
86
+ /** 跳过目标域名 DNS 校验,通常用于目标域名由正向代理解析的场景 */
87
+ skipDnsValidation?: boolean;
88
+ /** 跳过目标域名 DNS 校验的原因 */
89
+ skipDnsValidationReason?: string;
90
+ }
91
+
78
92
  /**
79
93
  * SSRF 防护接口
80
94
  */
@@ -82,17 +96,22 @@ export interface ISsrfGuard {
82
96
  /**
83
97
  * 验证 URL 是否安全
84
98
  * @param url 要验证的 URL
99
+ * @param options 验证选项
85
100
  * @returns 验证结果
86
101
  */
87
- validate: (url: string) => Promise<SsrfGuardResult>;
102
+ validate: (url: string, options?: SsrfGuardValidateOptions) => Promise<SsrfGuardResult>;
88
103
 
89
104
  /**
90
105
  * 验证并返回安全的 URL
91
106
  * @param url 要验证的 URL
107
+ * @param options 验证选项
92
108
  * @returns 安全的 URL 和验证结果
93
109
  * @throws {SecurityError} 验证失败时抛出错误
94
110
  */
95
- validateAndGetSafeUrl: (url: string) => Promise<{ safeUrl: string, result: SsrfGuardResult }>;
111
+ validateAndGetSafeUrl: (
112
+ url: string,
113
+ options?: SsrfGuardValidateOptions
114
+ ) => Promise<{ safeUrl: string, result: SsrfGuardResult }>;
96
115
 
97
116
  /**
98
117
  * 更新配置
@@ -123,4 +142,3 @@ export interface ISsrfGuard {
123
142
  getConfig: () => SecurityConfig;
124
143
  }
125
144
 
126
-