React 보안 최고의 실천 방법 10가지
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
React 프론트엔드 개발자 및 보안 엔지니어 (중급~고급)
핵심 요약
- XSS 보호 강화 -
dangerouslySetInnerHTML
대신 기본 XSS 방어 기능 사용 - HTML 안전 처리 -
react-html-parser
등 유효한 HTML 렌더링 라이브러리 사용 - 의존성 취약점 관리 -
npm audit
또는snyk
으로 3rd-party 라이브러리 취약점 점검 - React 버전 관리 -
react@latest
또는 보안 패치된 버전 사용
섹션별 세부 요약
1. XSS 및 URL 인젝션 방어
- 기본
data binding
기능으로 자동 XSS 필터링 적용 window.location
또는URL
객체 사용 시 URL 인젝션 위험 점검dangerouslySetInnerHTML
사용 시 반드시 HTML Sanitization 처리
2. DOM 조작 및 SSR 보안
ref
를 통한 직접 DOM 조작은 최소화하고 React의 가상 DOM 활용- 서버 렌더링(SSR) 시
dangerouslySetInnerHTML
사용 시 반드시trustedHTML
검증
3. 의존성 및 JSON 인젝션 방어
npm ls vulnerable
명령어로 3rd-party 라이브러리 취약점 확인JSON.parse()
사용 시JSON.stringify()
로 입력값 검증react@18.2.0
이상 버전 사용 권장 (CVE-2022-32681 패치 포함)
4. 보안 코드 검증 및 라이브러리 관리
- ESLint 설정에
@typescript-eslint/restrict-template-expressions
등 보안 규칙 추가 lodash
,moment
등 사용 시 최신 버전으로 업데이트react-bootstrap
,antd
등 인기 라이브러리의 보안 패치 확인
결론
- 기본 XSS 방어 기능과
dangerouslySetInnerHTML
대체 라이브러리 사용 npm audit
과snyk
을 주기적으로 실행하여 의존성 취약점 점검react@18.2.0
이상 버전 사용 및 ESLint 보안 규칙 적용을 권장 (예:@typescript-eslint/restrict-template-expressions
)