From fe1d2ae25eca38207c7d96618ed4d9b5fc912e16 Mon Sep 17 00:00:00 2001 From: JangJinYoung Date: Thu, 6 Dec 2018 12:29:59 +0900 Subject: [PATCH 1/4] update korean translation --- .../docs/guides/debugging-getting-started.md | 160 ++++++++++-- locale/ko/docs/inspector.md | 233 ------------------ locale/ko/site.json | 4 - 3 files changed, 146 insertions(+), 251 deletions(-) delete mode 100644 locale/ko/docs/inspector.md diff --git a/locale/ko/docs/guides/debugging-getting-started.md b/locale/ko/docs/guides/debugging-getting-started.md index edf9ea29baea4..7c01f51a0073d 100644 --- a/locale/ko/docs/guides/debugging-getting-started.md +++ b/locale/ko/docs/guides/debugging-getting-started.md @@ -10,8 +10,6 @@ This guide will help you get started debugging your Node.js apps and scripts. ## Enable Inspector -**NOTE**: The `--inspect` option and [Inspector Protocol][] are _experimental_ and may change. - When started with the **--inspect** switch, a Node.js process listens via WebSockets for diagnostic commands as defined by the [Inspector Protocol][], by default at host and port 127.0.0.1:9229. Each process is also assigned a @@ -55,8 +53,6 @@ it will activate the Inspector API. ## 인스펙터 활성화 -**NOTE**: `--inspect` 옵션과 [Inspector 프로토콜][]은 _실험 단계_이고 변경될 수 있습니다. - **--inspect** 스위치로 시작하면 Node.js 프로세스가 [Inspector 프로토콜][]에서 정의된 진단 명령어를 웹소켓으로 받습니다. [Inspector 프로토콜][]은 기본적으로 127.0.0.1:9229를 사용합니다. 각 프로세스에는 고유한 [UUID][](예: `0f2c936f-b1cd-4ac9-aab3-f63b0f33d55e`)도 @@ -90,6 +86,69 @@ HTTP 요청을 보내서 이 메타데이터를 받을 수 있습니다. 이는 Node 8 부터는 인스펙터 API를 활성화할 것입니다. --- + + +## 보안 관련 + +디버거가 Node.js 실행 환경에 완전히 액세스하기 때문에 이 포트에 연결할 수 있는 악의적인 행위자가 노드 프로세스를 대신하여 임의의 코드를 실행할 수 있습니다. 디버거 포트를 공용 및 개인 네트워크에 노출하는 경우 보안에 미치는 영향을 이해하는 것은 중요합니다. + + + +### 디버그 포트를 공개적으로 노출하는 것은 안전하지 않습니다. + +디버거가 퍼블릭 IP 주소 또는 0.0.0.0에 바인딩 될 경우 IP 주소에 접근할 수 있는 어떤 클라이언트든 아무 제약 없이 디버거에 접속할 수 있고 임의의 코드를 실행할 수 있습니다. + +기본적으로 `node --inspect`는 127.0.0.1에 바인딩 합니다. 디버거에 외부 접속을 허용하려 할 경우 퍼블릭 IP 주소 또는 0.0.0.0 등을 명시적으로 제공해야 합니다. 이렇게 하면 잠재적으로 심각한 보안 위협에 노출될 수 있습니다. 보안 노출을 방지하기 위해 적절한 방화벽과 액세스 제어를 유지하는 것이 좋습니다. + +원격 디버거 클라이언트의 접근을 안전하게 허용하는 방법은 '[원격 디버깅 활성화 시나리오](#enabling-remote-debugging-scenarios)' 섹션을 참조하십시오. + + + +### 로컬 응용프로그램은 인스펙터에 완전히 액세스 할 수 있습니다. + +인스펙터 포트를 127.0.0.1(기본값)에 바인딩하더라도 시스템에서 로컬로 실행되는 애플리케이션들은 제한 없이 액세스 할 수 있습니다. 이것은 로컬 디버거를 편리하게 부착할 수 있도록 의도적으로 설계되었습니다. + + + +### 브라우저, 웹 소켓, 그리고 same-origin 정책 + +웹브라우저에서 열리는 웹사이트는 브라우저 보안 모델에 따라 웹소켓과 HTTP 요청을 할 수 있습니다. 고유한 디버거 세션 ID를 얻으려면 초기 HTTP 연결이 필요합니다. same-origin 정책은 이 HTTP 연결을 만들 수 없도록 합니다. [DNS 리바인딩 공격](https://en.wikipedia.org/wiki/DNS_rebinding)에 대한 추가 보안을 위해 Node.js는 연결을 위한 'Host' 헤더가 IP 주소나 `localhost` 또는 `localhost6`을 정확하게 지정하는지 검증합니다. + + + +이러한 보안 정책은 호스트 이름을 지정하여 원격 디버그 서버에 접속할 수 없도록 합니다. IP 주소를 지정하거나 아래에 설명된 것과 같이 ssh 터널을 사용하여 이 제한사항을 해결할 수 있습니다. -#### [VS Code](https://github.com/microsoft/vscode) 1.10+ +#### [Visual Studio Code](https://github.com/microsoft/vscode) 1.10+ * Debug 패널에서 설정 아이콘을 클릭해서 `.vscode/launch.json`을 엽니다. 초기 설정으로 "Node.js"를 선택하세요. +#### [Visual Studio](https://github.com/Microsoft/nodejstools) 2017 + +* 메뉴에서 "Debug > Start Debugging"을 선택하거나 F5를 누르세요. +* [상세한 설명](https://github.com/Microsoft/nodejstools/wiki/Debugging) + #### [JetBrains WebStorm](https://www.jetbrains.com/webstorm/) 2017.1+와 다른 JetBrains IDE * 새로운 Node.js 디버그 설정을 생성하고 Debug를 누르세요. Node.js 7+에서는 @@ -224,6 +293,16 @@ The following table lists the impact of various runtime flags on debugging: + + node inspect --port=xxxx script.js + + + + --- @@ -240,7 +319,7 @@ The following table lists the impact of various runtime flags on debugging: @@ -249,7 +328,8 @@ The following table lists the impact of various runtime flags on debugging: @@ -258,8 +338,8 @@ The following table lists the impact of various runtime flags on debugging: @@ -268,8 +348,9 @@ The following table lists the impact of various runtime flags on debugging: @@ -277,8 +358,16 @@ The following table lists the impact of various runtime flags on debugging: node inspect script.js + + + + node inspect --port=xxxx script.js + + @@ -286,6 +375,49 @@ The following table lists the impact of various runtime flags on debugging: --- + +## 원격 디버깅 활성화 시나리오 + + +디버거가 퍼블릭 IP 주소에서 수신하지 않는 것을 권장합니다. 만약 원격 디버깅 연결을 허용해야 하는 경우 ssh 터널링을 대신 사용할 것을 권장합니다. 설명을 위해 아래 예제를 제공합니다. 진행하기 전에 권한 있는 서비스에 대한 원격 액세스 허용의 보안 위험을 이해하십시오. + + +디버깅하기를 원하는 원격 시스템의 노드인 remote.example.com을 실행 중이라고 가정하겠습니다. 해당 시스템에서 localhost(기본값)만 수신하는 인스펙터로 노드 프로세스를 시작해야 합니다. + +```bash +$ node --inspect server.js +``` + + +이제 디버그 클라이언트 연결을 시작하려는 로컬 시스템에서 ssh 터널을 설정할 수 있습니다. + +```bash +$ ssh -L 9221:localhost:9229 user@remote.example.com +``` + + +그러면 로컬 시스템의 9221 포트에서 remote.example.com의 9229 포트로 전달되는 ssh 터널 세션이 시작됩니다. Chrome DevTools 또는 Visual Studio Code 등의 디버거로 localhost:9221에 연결 할 수 있으며 Node.js 애플리케이션이 로컬에서 실행 중인 것처럼 디버깅할 수 있습니다. + +--- + - -# Node.js 애플리케이션 디버깅 - -Node.js 애플리케이션을 디버그에 도움이 되는 많은 도구와 라이브러리가 있습니다만, 그 중 일부만 소개합니다. - -도구를 사용하지 않고 수동으로 연결하려면 **--inspect** 옵션을 사용하여 화면에 나타난 URL로 접속하세요. - -`--inspect` 없이 프로세스를 시작했을 경우 SIGUSR1 신호를 보내 디버거를 활성화하면 연결 URL이 화면에 나타납니다. - - - -## 인스펙터 도구와 클라이언트 - -아래와 같은 상용, 오픈 소스 도구를 사용하면 Node.js 애플리케이션을 더 쉽게 디버깅 할 수 있습니다. - -### [node-inspect](https://github.com/nodejs/node-inspect) - -* 이 CLI 디버거는 에서 개발되고 있습니다. -* Node에 포함되어 있으며 `node inspect myscript.js`로 실행됩니다. -* 또한, `npm install -g node-inspect`로 직접 설치할 수 있으며, `node-inspect myscript.js`로 사용할 수 있습니다. - -### [Chrome DevTools](https://github.com/ChromeDevTools/devtools-frontend) - -* **옵션 1**: 크로미움 기반의 브라우저에서 `chrome://inspect`에 접속 후 "Open dedicated DevTools for Node"를 클릭하십시오. - - - -### [VS Code](https://github.com/microsoft/vscode) 1.10+ - -* 디버그 패널에서 설정 아이콘을 클릭하여 `.vscode/launch.json`을 열고 초기 설정을 위해 "Node.js"를 선택합니다. - -### [Visual Studio](https://github.com/Microsoft/nodejstools) - -* 메뉴에서 "Debug > Start Debugging"을 선택하거나 F5를 누릅니다. -* 자세한 안내는 [여기](https://github.com/Microsoft/nodejstools/wiki/Debugging)를 참고하세요. - - -### [JetBrains WebStorm](https://www.jetbrains.com/webstorm/) 2017.1+ 및 기타 JetBrains IDE - -* 새로운 Node.js 디버그 구성을 만들고 Debug를 누릅니다. - -### [chrome-remote-interface](https://github.com/cyrus-and/chrome-remote-interface) - -* 인스펙터 프로토콜 엔드포인트에 쉽게 연결할 수 있는 라이브러리입니다. - - - - -## 커맨드라인 옵션 - -아래의 표는 다양한 런타임 옵션이 디버깅에 미치는 영향을 나타냅니다. - - - - - - - - - - - - - - - - - - - - - - - - - - - -
옵션의미
--inspect -
    -
  • 인스펙터 에이전트를 활성화합니다
  • -
  • 기본 주소와 포트로 수신합니다 (127.0.0.1:9229)
  • -
-
--inspect=[host:port] -
    -
  • 인스펙터 에이전트를 활성화합니다
  • -
  • host에 해당하는 주소나 호스트네임으로 바인딩합니다 (기본값: 127.0.0.1)
  • -
  • port에 해당하는 포트로 수신합니다 (기본값: 9229)
  • -
-
--inspect-brk -
    -
  • 인스펙터 에이전트를 활성화합니다
  • -
  • 기본 주소와 포트로 수신합니다 (127.0.0.1:9229)
  • -
  • 사용자의 코드를 시작하기 전에 중단합니다
  • -
-
--inspect-brk=[host:port] -
    -
  • 인스펙터 에이전트를 활성화합니다
  • -
  • host에 해당하는 주소나 호스트네임으로 바인딩합니다 (기본값: 127.0.0.1)
  • -
  • port에 해당하는 포트로 수신합니다 (기본값: 9229)
  • -
  • 사용자의 코드를 시작하기 전에 중단합니다
  • -
-
node inspect script.js -
    -
  • --inspect 옵션으로 사용자의 스크립트를 실행하는 하위 프로세스를 생성하고, 메인 프로세스로 CLI 디버거를 실행합니다.
  • -
-
node inspect --port=xxxx script.js -
    -
  • --inspect 옵션으로 사용자의 스크립트를 실행하는 하위 프로세스를 생성하고, 메인 프로세스로 CLI 디버거를 실행합니다.
  • -
  • port에 해당하는 포트로 수신합니다 (기본값: 9229)
  • -
-
diff --git a/locale/ko/site.json b/locale/ko/site.json index e874a8bd2c213..c47c31bc3cfda 100644 --- a/locale/ko/site.json +++ b/locale/ko/site.json @@ -93,10 +93,6 @@ "guides": { "link": "docs/guides", "text": "안내" - }, - "inspector": { - "link": "docs/inspector", - "text": "인스펙터" } }, "getinvolved": { From cb99b62c5e2add0f89b4e641c258c91b6dabc26e Mon Sep 17 00:00:00 2001 From: expitly Date: Wed, 19 Dec 2018 01:04:46 +0900 Subject: [PATCH 2/4] update translation --- .../docs/guides/debugging-getting-started.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/locale/ko/docs/guides/debugging-getting-started.md b/locale/ko/docs/guides/debugging-getting-started.md index 7c01f51a0073d..f8ac8eb845b78 100644 --- a/locale/ko/docs/guides/debugging-getting-started.md +++ b/locale/ko/docs/guides/debugging-getting-started.md @@ -126,7 +126,7 @@ Even if you bind the inspector port to 127.0.0.1 (the default), any applications running locally on your machine will have unrestricted access. This is by design to allow local debuggers to be able to attach conveniently. --> -### 로컬 응용프로그램은 인스펙터에 완전히 액세스 할 수 있습니다. +### 로컬 애플리케이션은 인스펙터에 완전히 액세스 할 수 있습니다. 인스펙터 포트를 127.0.0.1(기본값)에 바인딩하더라도 시스템에서 로컬로 실행되는 애플리케이션들은 제한 없이 액세스 할 수 있습니다. 이것은 로컬 디버거를 편리하게 부착할 수 있도록 의도적으로 설계되었습니다. @@ -140,9 +140,9 @@ able to make this HTTP connection. For additional security against verifies that the 'Host' headers for the connection either specify an IP address or `localhost` or `localhost6` precisely. --> -### 브라우저, 웹 소켓, 그리고 same-origin 정책 +### 브라우저, 웹 소켓, 동일 출처 정책 -웹브라우저에서 열리는 웹사이트는 브라우저 보안 모델에 따라 웹소켓과 HTTP 요청을 할 수 있습니다. 고유한 디버거 세션 ID를 얻으려면 초기 HTTP 연결이 필요합니다. same-origin 정책은 이 HTTP 연결을 만들 수 없도록 합니다. [DNS 리바인딩 공격](https://en.wikipedia.org/wiki/DNS_rebinding)에 대한 추가 보안을 위해 Node.js는 연결을 위한 'Host' 헤더가 IP 주소나 `localhost` 또는 `localhost6`을 정확하게 지정하는지 검증합니다. +웹 브라우저에서 열리는 웹사이트는 브라우저 보안 모델에 따라 웹 소켓과 HTTP 요청을 할 수 있습니다. 고유한 디버거 세션 ID를 얻으려면 초기 HTTP 연결이 필요합니다. 동일 출처 정책은 이 HTTP 연결을 만들 수 없도록 합니다. [DNS 리바인딩 공격](https://en.wikipedia.org/wiki/DNS_rebinding)에 대한 추가 보안을 위해 Node.js는 연결의 'Host' 헤더가 IP 주소나 `localhost` 또는 `localhost6`을 정확하게 지정하는지 검증합니다. -디버깅하기를 원하는 원격 시스템의 노드인 remote.example.com을 실행 중이라고 가정하겠습니다. 해당 시스템에서 localhost(기본값)만 수신하는 인스펙터로 노드 프로세스를 시작해야 합니다. +디버깅하기를 원하는 remote.example.com 원격 시스템에서 노드가 실행 중이라고 가정하겠습니다. 해당 시스템에서 localhost(기본값)만 수신하는 인스펙터로 노드 프로세스를 시작해야 합니다. ```bash $ node --inspect server.js From 40675417569f3a3cd282d71bc2f5f2fef6a78f64 Mon Sep 17 00:00:00 2001 From: JangJinYoung Date: Fri, 21 Dec 2018 16:25:03 +0900 Subject: [PATCH 3/4] update translation --- locale/ko/docs/guides/debugging-getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locale/ko/docs/guides/debugging-getting-started.md b/locale/ko/docs/guides/debugging-getting-started.md index f8ac8eb845b78..f1670dc3c1aa7 100644 --- a/locale/ko/docs/guides/debugging-getting-started.md +++ b/locale/ko/docs/guides/debugging-getting-started.md @@ -140,9 +140,9 @@ able to make this HTTP connection. For additional security against verifies that the 'Host' headers for the connection either specify an IP address or `localhost` or `localhost6` precisely. --> -### 브라우저, 웹 소켓, 동일 출처 정책 +### 브라우저, 웹소켓, 동일 출처 정책 -웹 브라우저에서 열리는 웹사이트는 브라우저 보안 모델에 따라 웹 소켓과 HTTP 요청을 할 수 있습니다. 고유한 디버거 세션 ID를 얻으려면 초기 HTTP 연결이 필요합니다. 동일 출처 정책은 이 HTTP 연결을 만들 수 없도록 합니다. [DNS 리바인딩 공격](https://en.wikipedia.org/wiki/DNS_rebinding)에 대한 추가 보안을 위해 Node.js는 연결의 'Host' 헤더가 IP 주소나 `localhost` 또는 `localhost6`을 정확하게 지정하는지 검증합니다. +웹 브라우저에서 열리는 웹사이트는 브라우저 보안 모델에 따라 웹소켓과 HTTP 요청을 할 수 있습니다. 고유한 디버거 세션 ID를 얻으려면 초기 HTTP 연결이 필요합니다. 동일 출처 정책은 이 HTTP 연결을 만들 수 없도록 합니다. [DNS 리바인딩 공격](https://en.wikipedia.org/wiki/DNS_rebinding)에 대한 추가 보안을 위해 Node.js는 연결의 'Host' 헤더가 IP 주소나 `localhost` 또는 `localhost6`을 정확하게 지정하는지 검증합니다. ## 보안 관련 -디버거가 Node.js 실행 환경에 완전히 액세스하기 때문에 이 포트에 연결할 수 있는 악의적인 행위자가 노드 프로세스를 대신하여 임의의 코드를 실행할 수 있습니다. 디버거 포트를 공용 및 개인 네트워크에 노출하는 경우 보안에 미치는 영향을 이해하는 것은 중요합니다. +디버거가 Node.js 실행 환경에 완전히 액세스하기 때문에 이 포트에 연결할 수 있는 공격자가 노드 프로세스를 대신하여 임의의 코드를 실행할 수 있습니다. 디버거 포트를 공용 및 개인 네트워크에 노출하는 경우 보안에 미치는 영향을 이해하는 것은 중요합니다. -디버거가 퍼블릭 IP 주소에서 수신하지 않는 것을 권장합니다. 만약 원격 디버깅 연결을 허용해야 하는 경우 ssh 터널링을 대신 사용할 것을 권장합니다. 설명을 위해 아래 예제를 제공합니다. 진행하기 전에 권한 있는 서비스에 대한 원격 액세스 허용의 보안 위험을 이해하십시오. +디버거가 퍼블릭 IP 주소에서 수신하지 않는 것을 권장합니다. 만약 원격 디버깅 연결을 허용해야 하는 경우 ssh 터널링을 대신 사용할 것을 권장합니다. 설명을 위해 아래 예제를 제공합니다. 진행하기 전 권한을 가진 서비스에 원격 액세스를 허용할 경우 발생할 수 있는 보안 위험을 이해하시기 바랍니다.