GitHub ID : soohyun-dev
윤수현의 개발 공간
GitHub ID : soohyun-dev
전체 방문자
오늘
어제
  • 분류 전체보기 (918)
    • 성장기록 (49)
      • 성장기록 (3)
      • 우아한테크코스 (16)
      • 프로젝트 (15)
      • TIL (14)
      • 테오의 스프린트 (1)
    • 프로그래밍언어 (88)
      • C언어 (14)
      • HTML\CSS (12)
      • JavaScript (7)
      • React (23)
      • Python (11)
      • JAVA (14)
      • TypeScript (6)
    • 알고리즘 공부 (736)
      • 코드업 - 파이썬 (108)
      • 백준 - 파이썬 (468)
      • 백준 - 자바스크립트 (125)
      • 프로그래머스 - 파이썬 (1)
      • 프로그래머스 - 자바스크립트 (34)
    • 책 리뷰 (9)
      • 프로그래밍 (3)
      • 독서 (6)
    • 전자기기 (1)
    • 일상, 일기 (18)
    • 기술 세미나 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 프로그래밍언어
  • 영어
  • 백준풀이
  • 코테
  • PYTHON
  • 코딩
  • 코딩테스트
  • 코드업파이썬
  • 프론트엔드
  • 프로그래머스자바스크립트
  • 프로그래머스풀이
  • 백준파이썬
  • 백준
  • 영어독해
  • 독해
  • 코드업
  • 자바스크립트
  • javascript
  • 프로그래머스
  • 파이썬

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
GitHub ID : soohyun-dev

윤수현의 개발 공간

모던 리액트 deep dive 스터디 - 14장 발표 정리
프로그래밍언어/React

모던 리액트 deep dive 스터디 - 14장 발표 정리

2024. 12. 29. 01:55

모던 리액트 deep dive 스터디 - 14장 발표 정리

 

 

 

주제: 14장 웹사이트 보안을 위한 리액트와 웹페이지 보안 이슈(874p~902p)


크로스 사이트 스크립팅(XSS)

웹사이트 개발자가 아닌 제3자가 웹사이트에 악성 스크립트를 삽입해 실행할 수 있는 취약점

 

 

xss 이슈가 발생할 수 있는 방법

 

dangerouslySetInnerHTML prop

 

- 특정 브라우저 DOM의 innerHTML을 특정한 내용으로 교체할 수 있는 방법

- 인수로 받는 문자열에는 제한이 없다. (검증 필요)

 

 

useRef를 활용한 직접 삽입

 

- useRef를 활용하면 직접 DOM에 접근 가능하져 보안에 취약해진다.

 

 

 

xss 문제를 피하는 방법

 

- 제3자가 삽입할 수 있는 HTML을 안전한 HTML 코드로 한 번 치환하는 것(sanitize or escape)

- sanitize library (DOM purity, sanitize-html, js-xss)

- 서버는 '클라이언트에서 사용자가 입력한 데이터는 일단 의심한다'라는 자세 가지기

- query, GET 파라미터, 서버에 저장된 사용자가 입력한 데이터 등 외부에 존재하는 모든 코드는 위험한 코드로 간주

 

 


getServerSideProps와 서버 컴포넌트를 주의하자

 

getServerSideProps가 반환하는 값 또는 서버 컴포넌트가 클라이언트 컴포넌트에 반환하는 props는 반드시 필요한 값으로만 철저히 제한

 

 

 

<a> 태그의 값에 적절한 제한을 둬야 한다.

- <a> 태그는 반드시 페이지 이동이 있을 때만 사용

- 이동 없이 핸들러 작동이 목적이라면 button 사용

- href 내에 JS 코드가 존재하면 이를 실행하여 보안 이슈로 이어질 수 있음. (의도적으로 주소 주입)

 

 

HTTP 보안 헤더 설정하기

*HTTP 보안 헤더: 브라우저가 렌더링하는 내용과 관련된 보안 취약점을 미연에 방지하기 위해 브라우저와 함께 작동하는 헤더

 

Strict-Transport-Security

모든 사이트가 HTTPS를 통해 접근해야 함

 

X-XSS-Protection

비표준 기술 (사파리 & 구형 브라우저에서만 제공)

XSS 취약점이 발견되면 페이지 로딩을 중단

 

X-Frame-Options

페이지를 frame, iframe, embed, object 내부에서 렌더링을 허용할지를 나타냄

X-Frame-Options: deny 옵션을 주면 <iframe>으로 삽입되는 것을 막아줌

sameOrigin은 같은 origin 내에서는 허용

 

Permissions-Policy

웹사이트에서 사용할 수 있는 기능과 사용할 수 없는 기능을 명시적으로 선언

 

X-Content-Type-Options

웹서버가 브라우저에 강제로 파일을 읽는 방식을 지정하는 것

 

Referrer-Policy

Referer: 현재 요청을 보낸 페이지의 주소

참고로 Referrer은 오타이지만 이미 표준으로 등록되어 수정하지 못했다

 

Content-Security-Policy

XSS 공격이나 데이터 삽입 공격과 같은 다양한 보안 위협을 막기 위해 설계

 

 


 

보안 헤더 확인하기

https://securityheaders.com에 접속하면 현재 서비스중인 웹사이트의 보안 헤더를 확인할 수 있다.

 

 

취약점이 있는 패키지의 사용 피하기

깃허브의 Dependabot이 발견한 취약점은 빠르게 조치하기

반응형

'프로그래밍언어 > React' 카테고리의 다른 글

모던 리액트 deep dive 스터디 - 12장 발표 정리  (1) 2024.12.21
모던 리액트 deep dive 스터디 - 4장 발표 정리  (2) 2024.11.29
모던 리액트 deep dive 스터디 - 8주차 발표 정리  (0) 2024.04.27
모던 리액트 deep dive 스터디 - 7주차 발표 정리  (1) 2024.04.20
모던 리액트 deep dive 스터디 - 6주차 발표 정리  (0) 2024.04.13
    '프로그래밍언어/React' 카테고리의 다른 글
    • 모던 리액트 deep dive 스터디 - 12장 발표 정리
    • 모던 리액트 deep dive 스터디 - 4장 발표 정리
    • 모던 리액트 deep dive 스터디 - 8주차 발표 정리
    • 모던 리액트 deep dive 스터디 - 7주차 발표 정리
    GitHub ID : soohyun-dev
    GitHub ID : soohyun-dev
    환영합니다!😊 이곳은 저의 개발에 관한 내용들을 정리하는 공간입니다. 알고리즘 풀이에도 관심이 많아요. 좋은 하루 되세요~! github : soohyun_dev

    티스토리툴바