diff --git a/README.ko.md b/README.ko.md index 06c0433..cec5796 100644 --- a/README.ko.md +++ b/README.ko.md @@ -204,6 +204,18 @@ WARN k.d.s.core.UrlPolicy : ssrf-guard: Host not allowed: evil.com (reason=block 모듈마다 자기 자동설정 보유 — `SsrfGuardRestTemplateAutoConfiguration`, `SsrfGuardWebClientAutoConfiguration`, `SsrfGuardFeignAutoConfiguration`, `SsrfGuardSpringAiAutoConfiguration`. 동일 `UrlPolicy`와 `SsrfGuardMetrics` 빈 공유. 모든 빈이 `@ConditionalOnMissingBean` — 일부만 교체 가능. +## TypeScript / JavaScript 형제 프로젝트 — ssrf-guard-js + +같은 보안 모델을 JS 생태계로 포팅한 +[`@devslab/ssrf-guard-js`](https://www.npmjs.com/package/@devslab/ssrf-guard-js) +([repo](https://github.com/devslab-kr/ssrf-guard-js) · +[docs](https://devslab-kr.github.io/ssrf-guard-js/))가 있습니다: URL-time 검증 +(`validateUrl`), DNS 검사 + optional `undici` socket pinning이 포함된 guarded +fetch (`safeFetch`, Node — 이 프로젝트의 DNS-time guard에 대응), Cloudflare +Workers/브라우저용 runtime-agnostic guarded fetch (`guardedFetch`), 그리고 +`-llm` / `-springai` / `-langchain4j`에 대응하는 LLM tool-input URL guard +(`guardToolInputJson`). + ## 요구사항 - Java 21+ diff --git a/README.md b/README.md index 8ced70f..c657f2d 100644 --- a/README.md +++ b/README.md @@ -204,6 +204,18 @@ When `ssrf.guard.enabled=true` (the default), the RestClient autoconfig activate Each module has its own auto-config — `SsrfGuardRestTemplateAutoConfiguration`, `SsrfGuardWebClientAutoConfiguration`, `SsrfGuardFeignAutoConfiguration`, `SsrfGuardSpringAiAutoConfiguration`. They all reuse the same `UrlPolicy` and `SsrfGuardMetrics` beans. Every bean is `@ConditionalOnMissingBean`, so you can swap any piece. +## TypeScript / JavaScript sibling — ssrf-guard-js + +The same security model, ported to the JS ecosystem as +[`@devslab/ssrf-guard-js`](https://www.npmjs.com/package/@devslab/ssrf-guard-js) +([repo](https://github.com/devslab-kr/ssrf-guard-js) · +[docs](https://devslab-kr.github.io/ssrf-guard-js/)): URL-time validation +(`validateUrl`), a guarded fetch with DNS checks and optional `undici` socket +pinning (`safeFetch`, Node — the counterpart of this project's DNS-time +guards), a runtime-agnostic guarded fetch for Cloudflare Workers / browsers +(`guardedFetch`), and the LLM tool-input URL guard (`guardToolInputJson`) — +the JS counterpart of `-llm` / `-springai` / `-langchain4j`. + ## Requirements - Java 21+ diff --git a/docs/index.ko.md b/docs/index.ko.md index dda186b..774153a 100644 --- a/docs/index.ko.md +++ b/docs/index.ko.md @@ -102,6 +102,7 @@ ssrf: - **GitHub**: - **Maven Central**: - **Docs**: +- **TypeScript / JavaScript 형제 프로젝트**: [`@devslab/ssrf-guard-js`](https://www.npmjs.com/package/@devslab/ssrf-guard-js) — 같은 보안 모델의 Node + edge 런타임 버전 ([repo](https://github.com/devslab-kr/ssrf-guard-js) · [docs](https://devslab-kr.github.io/ssrf-guard-js/)) ## 라이선스 diff --git a/docs/index.md b/docs/index.md index 0898914..3a5b520 100644 --- a/docs/index.md +++ b/docs/index.md @@ -102,6 +102,7 @@ Continue to the [Installation guide](getting-started/installation.md) for the fu - **GitHub**: - **Maven Central**: - **Docs**: +- **TypeScript / JavaScript sibling**: [`@devslab/ssrf-guard-js`](https://www.npmjs.com/package/@devslab/ssrf-guard-js) — the same security model for Node and edge runtimes ([repo](https://github.com/devslab-kr/ssrf-guard-js) · [docs](https://devslab-kr.github.io/ssrf-guard-js/)) ## License