You Can Become A
늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !
[NODE / 보안] 📚 csurf 모듈 사용법 - CSRF 공격 방지
csurf 모듈 csurf 모듈은 CSRF 공격을 방지하는 보안 모듈이다. csurf 모듈은 CSRF Secret와 CSRF Token을 만들어서 서로 매칭이 되는지 확인하는 기능을 손쉽게 제공하는 식으로, 보통 CSRF Secret는 session/cookie에 저장하고 CSRF Token은 POST body에 저장한다. 따라서 폼 제출을 하면, csurf 모듈은 사용자의 CSRF Secret와 CSRF Token이 일치하는지 검증하여 사용자가 맞는지 확인 하게 된다. (뒤에 코드에서 자세히 설명) CSRF 란? CSRF는 사용자가 의도치 않게 공격자가 의도한 행동을 하게 만드는, 쿠키를 통한 인증방식에서 사용되는 공격기법이다. 예를 들어 특정 페이지에 방문할 때 저절로 로그아웃되거나, 게시글이 써지는..
[NODE / 보안] 📚 hpp 모듈 사용법
hpp (HTTP Parameter Pollution) 모듈 hpp (HTTP Parameter Pollution) 는 Express의 중복 이름 파라메터 공격을 방어해주는 모듈이다. Express가 동일한 이름을 가진 파라메터들이 있을 경우 Array로 만들어주는데, 이때 의도치 않은 동작을 하도록 외부에서 공격할 수 있는 보안 문제가 될 수 있기 때문이다. (입력 데이터 검증을 회피하거나 앱 크래시를 유발) 만일 다음과 같은 url을 요청한다고 해보자. https://localhost:9876/api/api1?keyName=data1&keyName=data2 url 쿼리스트링에 같은 keyName 키가 두개를 썼다. 이렇게 중복한 키가 있을경우, 위에서 언급했듯이 익스프레스는 배열로 만들어버린다. /..
[NODE / 보안] 📚 sanitize-html 모듈 사용법
sanitize-html 모듈 sanitize(소독) 은 html의 input 또는 textarea 또는 기타등등의 사용자 입력정보에 이란 문자열을 적을시, 웹브라우저에서 문자열이 txt가 아닌 script 기술로 받아들여서 생기는 문제를 방지하는 모듈이다. 사용자가 이를 악용하여 무시될까? h1태그는 링크 무시가 될까?`; const clean = sanitizeHtml(dirty); console.log(clean); 위 처럼 sanitize 를 사용하면 같은 태그는 출력이 안되게하고, 태그같은경우도 태그는 없애 버리게 도니다. (단, 웹에서 실행해보면 글씨포인트는 커진상태로 태그만 사라진다) 이처럼 악성스크립트를 사전에 차단시킬수 있게 되는 원리이다. 태그 허용하기 sanitize-html은 기본적..
[NODE / 보안] 📚 helmet 모듈 사용법 - 웹 보안은 내가 👮
helmet 모듈 helmet 모듈은 서버에서 다양한 HTTP 헤더를 자동 설정을 통해 서버 어플리케이션의 보안을 강화해주는 대표적인 노드 보안 모듈이다. 헬멧을 써서 내 머리를 보호하듯이, 내 웹서버를 외부의 공격으로부터 보호해준다. helmet 사용법 사용하는 에디터의 터미널에서 아래와 같이 helmet 모듈을 설치해주고 간단하게 선언만 해주면 된다. (배포용 모듈) helmet help secure Express/Connect apps with various HTTP headers. Latest version: 5.1.0, last published: 7 days ago. Start using helmet in your project by running `npm i helmet`. There are..