Node.js에서 보호 장치를 사용하여 수동 감지를 수행하는 방법

Node Jseseo Boho Jangchileul Sayonghayeo Sudong Gamjileul Suhaenghaneun Bangbeob



취약점 탐지, 모든 유형의 사이버 공격으로부터 코드 보호, 메모리 누수 방지는 프로그래머의 가장 중요한 임무입니다. 코드 내부에 있는 취약점을 탐지하고 예측하는 것은 매우 어렵고 시간이 많이 걸리는 프로세스입니다. 그러나 Nodejs에서는 애플리케이션을 보호하는 프로세스와 함께 수동 감지를 수행할 수 있는 몇 가지 접근 방식이 있습니다.

이 기사에서는 아래 섹션을 다루면서 Nodejs의 보호 장치를 사용하여 수동 감지를 수행하는 접근 방식을 설명합니다.







    • 속도 제한기 사용
    • 데이터 전송을 위한 TLS/SSL 사용
    • 탈출 출력

Node.js에서 보호 장치를 사용하여 수동 감지를 수행하는 방법

수동 감지는 코드를 여러 번 검토하여 Node.js 코드의 잠재적인 문제를 식별함으로써 수행됩니다. 구문 오류, 논리 오류 등을 검색하여 잠재적인 문제를 검색합니다. “의 사용 디버거 ' 그리고 ' 린터 '는 Node.js 프로그램 내부에 있는 잠재적인 위협이나 오류를 식별하는 데에도 활용될 수 있습니다.



코드 수명을 늘리면서 모든 종류의 잠재적인 스레드로부터 코드를 보호할 수 있는 다양한 방법이 있습니다. 이러한 방법은 다음과 같습니다.



방법 1: 속도 제한기를 활용하여 Node.js 프로그램 보호

서비스 거부 공격으로부터 애플리케이션을 방지하고 너무 많은 요청을 방지하여 애플리케이션 성능을 향상합니다. 실제 구현은 다음과 같습니다.





const 표현 = 필요 ( '표현하다' ) ;
const rateLim = 필요 ( '특급 요금 제한' ) ;
const safeApp = 익스프레스 ( ) ;

// 속도 제한 미들웨어 정의
const 제한 = rateLim ( {
창Ms: 60 * 1000 ,
최대: 100 , // 분당 최대 요구량
메시지: '죄송합니다! 속도 제한이 초과되었습니다' ,
} ) ;
// 속도 제한 미들웨어 적용
safeApp.use ( 제한 ) ;
// 경로 및 응답 핸들러 정의
safeApp.get ( '/' , ( 요청, 응답 ) = > {
응답.전송 ( '안녕하세요 리눅스힌트 커뮤니티!' ) ;
} ) ;

// Express 서버 초기화
const localPort = process.env.PORT || 3000 ;
safeApp.listen ( 로컬 포트, ( ) = > {
콘솔.로그 ( ` 서버가 포트 번호에서 시작되었습니다: ${localPort}


위 코드에서:

    • 먼저 '를 가져옵니다. 표현하다 ' 그리고 ' 특급 요금 제한 ” 패키지를 메인으로 “ JS ” 파일. '를 초기화합니다. 표현하다() ” 응용 프로그램을 선택하고 이름을 지정합니다.” safeApp '.
    • 다음으로 '에 대한 사용자 정의 값을 전달하여 속도 제한 미들웨어를 정의합니다. 창문들 ', ' 최대 ', 그리고 ' 메시지 ” 속성은 “ 특급 요금 제한 ' 패키지.
    • 이제 ' 사용() ' 방법.
    • 그런 다음 ' 얻다() ” 서버를 통해 요청으로 임의의 메시지를 보내는 방법입니다.
    • 마지막으로 “를 사용하여 포트 번호를 설정하십시오. 환경.포트 ” 속성을 지정하고 Express 앱이 지정된 포트 번호를 수신하도록 합니다.

방법 2: 데이터 전송에 TLS/SSL을 활용하여 Node.js 프로그램을 보호하세요.

TLS/SSL은 서버와 클라이언트 측 간에 전송되는 데이터를 암호화하는 보안 소켓 계층입니다. 이는 신용카드 번호와 같은 민감한 데이터를 공격자가 가로채는 것을 방지하고 규정 준수 요구 사항을 충족하는 데도 도움이 됩니다.



const fs = 필요 ( 'fs' ) ;
const 표현 = 필요 ( '표현하다' ) ;
const httpsObj = 필요 ( 'https' ) ;

const safeApp = 익스프레스 ( ) ;
const 옵션 = {
키: fs.readFileSync ( 'key.pem' ) ,
인증서: fs.readFileSync ( 'cert.pem' ) ,
} ;

const settingsServer = httpsObj.createServer ( 옵션, safeApp ) ;

safesafeApp.get ( '/' , ( 요청, 응답 ) = > {
응답.전송 ( '안녕하세요 리눅스힌트 커뮤니티!' ) ;
} ) ;

설정Server.listen ( 8000 ) ;


위 코드에 대한 설명은 다음과 같습니다.

    • 처음에는 필요한 Node.js를 가져옵니다. FS ', ' 표현하다 ', 그리고 ' https ” 프로젝트의 종속성을 제거하고 “express” 애플리케이션을 “라는 이름으로 초기화합니다. safeApp '.
    • 이제 “ 옵션 ' 개인 키와 인증서에 대한 파일을 나열하고 전달합니다. ' 열쇠 ' 그리고 ' 인증서 ' 속성. 파일은 '를 사용하여 만들 수 있습니다. openssl ” 명령과 이러한 파일은 연결 보안에 도움이 됩니다.
    • 마지막으로 '를 호출하여 서버를 생성합니다. 생성서버() ” 메서드를 사용하고 “ 옵션 ” 배열을 첫 번째 매개변수로 사용하고 app을 두 번째 매개변수로 표현합니다.
    • 애플리케이션에 TSL/SSL 인증을 적용하려면 ' 얻다() ” 요구 사항에 따른 방법.

방법 3: 이스케이프 출력을 활용하여 Node.js 프로그램 보호

Node.js 애플리케이션의 크로스 사이트 스크립팅을 방지하려면 “ XSS ” 공격에서 가장 일반적이고 널리 사용되는 기술은 출력에서 ​​특수 문자를 이스케이프하는 것입니다. XSS 공격을 방지하기 위해 특수 문자를 HTML 형식으로 변환하며 변환은 ' 이스케이프-html ” 패키지 객체:

const escObj = 필요 ( '이스케이프-html' ) ;
const dummyStr = '' ;

const modStr = escObj ( dummyStr ) ;
콘솔.로그 ( counterStr ) ;


위 코드에 대한 설명은 다음과 같습니다.

    • 첫째, “ 이스케이프-html ”패키지를 메인으로 가져왔습니다.” JS ” 파일과 해당 개체 또는 인스턴스는 “ escObj ” 변수입니다.
    • 다음으로 특수 문자가 포함된 임의의 코드 줄이 ' dummyStr ” 변수입니다.
    • 그 후 “ dummyStr ' 내부의 ' 변수 escObj ” 순수 HTML 형식으로의 변환 코드에 대한 괄호입니다.
    • 결과는 '라는 변수에 저장됩니다. counterStr ” 그러면 콘솔에 표시됩니다.

위 코드의 출력은 제공된 문자열을 포함하는 특수 문자가 이제 HTML 인코딩 형식으로 변환되었음을 보여줍니다.


이는 Nodejs의 보호 장치를 사용하여 수동 감지를 수행하는 것입니다.

결론

수동 감지를 수행하려면 모든 유형의 구문 또는 논리적 오류가 있는지 코드를 여러 번 검토하고 코드에 대해 여러 테스트를 수행하십시오. 모든 종류의 사이버 공격으로부터 Node.js 프로그램을 보호하거나 데이터 유출을 방지하려면 ' 속도 제한기 ', ' 데이터 전송을 위한 TLS/SSL ', 그리고 ' 탈출 출력 ' 기술. 이 가이드에서는 Node.js에서 보호 장치를 사용하여 수동 감지를 수행하는 절차를 설명했습니다.