2022-06-03(금) TIL

황인호·2022년 6월 7일
0

TIL 모음

목록 보기
67/119

오늘해야할일들

  • 최종 발표 잘 마무리하기 [완료]

  • 기술멘토링 제출하기 [완료]

  • Github Reademe 작성하기 [완료]

  • helmet를 사용한 이유

    Express 사용시 헤더의 설정을 통하여 웹 취약점으로부터 서버를 보호해주는 보안 모듈이라서 사용하였습니다.

    기능에 대한 설명

    1. CSP : Content-Sesurity-Policy 헤더를 설정해서 XSS나 교차사이트 인젝션등을 방지한다.
      다른사이트의 script를 불러오는것도 막기때문에 헬멧 적용전 별도로 설정이 필요하다.

    2. dnsprefetchControl : 도메인이 미리로딩되는 Prefetch에 대해 컨트롤 하기위해 X-DNS-Prefetch-Control 헤더를 설정한다.

    3. expectCt : 잘못 발급된 SSL인증서를 완화한다.

    4. frameguard : X-Fram-Options를 설정하며 클릭재킹의 공격을 방지한다.

    5. HidePowerdBy : 응답 헤더에 있는 X-Powerd-By에 서버 소프트웨어가 표기되는데 이를 숨겨준다. 나는 Express 표기

    6. hsts : http보다 https를 선호하도록 지시하는 Strict-Transport-Security 헤더를 설정한다. => 기본 false

    7. ieNoOpen : IE8 이상에 대해 X-Download-Options 설정한다.

    8. noSniff : X-Content-Type-Options를 설정하여 MIME유형 스니핑을 방지한다.

    9. permittedCrossDomainPolicies : 일부 클라이언트간에 도메인 간 콘텐츠 로드에 대해 도메인 정책을 알려주는 헤더 X-Permitted-Cross-Domain-Policies를 설정한다

    10. xssFilter : X-XSS-Protection헤더를 설정하여 xss공격이 있는 스크립트를 비활성화 시킨다.

      referrerPolicy는 헤더에 있는 referrer과 관련이 있는 설정같다.

  • hpp를 사용한 이유

    hpp : HTTP Parameter Pollution

    Express의 중복 이름 파라메터 공격을 방어해줄수있어서 사용하게되었습니다.

  • morgan을 사용한 이유

    로깅에 도움을 주는 미들웨어로 무슨일이 어디에서 일어났는지를 기록하고 확인할수있어서 사용하게 되었습니다.

  • CORS를 사용한 이유

    CORS(Cross-Origin Resource Sharing)는 한국말고 직역하면 교차 출처 리소스 공유이다.

    CORS 정책은 우리가 가져오는 리소스들이 안전한지를 검사하는 관문이다.

    교차 출처 리소스 공유 는 추가 HTTP헤더를 사용하여, 한 출처에서 실행 중인 웹 어플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에게 알려주는 체제다.

    CORS 기본 동작과정

    1. 클라이언트에서 HTTP요청의 헤더에 Origin을 담아서 전달한다.

      다른 Origin의 리소스 요청시 클라이언트는 HTTP 요청을 보낸다.

      이때 요청헤더의 Origin필드에는 요청을 보내는 Origin을 담아보낸다.

    2. 서버는 응답헤더에 Access-Control-Allow-Origin을 담아 클라이언트로 전달한다.

      서버가 응답을 보낸때, 허락하는 Origin을 클라이언트에게 전달한다.

    3. 클라이언트에서, 자신이 보냈던 요청의 Origin과 서버가 보내준 Access-Control-Allow-Origin을 비교한다.

      자신이 보낸 Origin과 서버가 보내준 Access-Control-Allow-Origin을 비교하여 차단할지 말지를 결정한다.

      만약 유효하지 않다면 그 응답을 사용하지 않고 버린다.

  • MySQL을 사용한 이유

    배우기 쉽고 , 구조가 간단하고 유연하고 확장이 가능하며

    다른 프로그래밍 언어와 통합이 가능하고 낮은 성능의 하드웨어에서도 사용하 가능한 장점이있어서 사용하게되었습니다.

profile
성장중인 백엔드 개발자!!

0개의 댓글