코드 그라데이션
XSS와 CSRF 공격 예방 본문
우리가 웹 사이트를 사용할 때 보면,
중간에 컴퓨터를 종료했는데도 로그인이 여전히 된 상태로 이어지는 경우가 많이 있다.
이건 쿠키 때문인데, 이 쿠키 값만 알아내면 해킹은 매우 쉽다.
알아야 할 웹 보안 이슈
XSS
크로스 사이드 스크립팅(Cross-Site Scripting, XSS)은 웹 애플리케이션에서 발생하는 보안 취약점 중 하나.
이 취약점은 공격자가 웹 페이지에 악성 스크립트를 삽입하여
사용자의 브라우저에서 실행되도록 하는 것을 허용하는 상황에서 발생합니다.
XSS는 주로 다음과 같은 세 가지 유형으로 나뉜다.
1) Stored XSS (저장형 XSS)
- 악성 스크립트가 웹 애플리케이션의 데이터베이스에 저장되고, 해당 데이터를 요청한 사용자에게 돌려주는 경우이다.
- 예를 들어, 공격자가 포럼 게시물에 악성 스크립트를 삽입하여 페이지를 방문한 다른 사용자들이 해당 스크립트를 실행하게 만들 수 있다.
2) Reflected XSS (반사형 XSS)
- 공격자가 피해자에게 특정 링크를 클릭하도록 유도하고, 그 링크에 악성 스크립트가 포함된 경우.
- 서버는 이 링크에 대한 응답으로 악성 스크립트를 포함한 페이지를 반환하고, 피해자의 브라우저에서 해당 스크립트가 실행된다.
3) DOM-based XSS (DOM 기반 XSS)
- Document Object Model (DOM)을 조작하여 발생하는 XSS.
- 클라이언트 측 스크립트가 웹 페이지의 DOM을 조작함으로써 공격이 이루어진다.
XSS 공격을 통해 공격자는 피해자의 세션 쿠키를 탈취하거나 인증된 사용자의 권한으로 웹 애플리케이션을 조작할 수 있다.
이를 방지하기 위해서는 다음과 같은 보안 조치가 필요하다.
# 입력 값 검증 및 이스케이핑
사용자의 입력 값에 대해 적절한 검증을 수행하고, 출력 시에는 이스케이핑을 사용하여 스크립트가 실행되지 않도록 합니다.
# HTTP 헤더 설정
웹 애플리케이션에서는 Content Security Policy (CSP) 헤더를 사용하여 허용된 리소스만 로드하도록 브라우저에 지시할 수 있다.
# 세션 보호
세션 쿠키를 안전하게 전송하고 저장하기 위해 HTTPS를 사용하고, secure 및 HttpOnly 속성을 설정하여 XSS 공격으로부터 보호한다.
# 보안 업데이트
프레임워크, 라이브러리, 웹 서버 등 사용 중인 소프트웨어를 최신 상태로 유지하여 보안 업데이트를 적용한다.
웹 개발자 및 보안 엔지니어들은 웹 애플리케이션에서 XSS 공격에 대한 방어 메커니즘을 구현하고, 코드 검토 및 펜테스팅을 통해 시스템의 보안을 강화해야 한다.
'백엔드 면접' 카테고리의 다른 글
부하 분산 (0) | 2024.04.07 |
---|---|
서비스 기본 구조와 필수 고려사항 (0) | 2024.04.06 |
온프레미스 환경에서 클라우드로 전환 (0) | 2024.04.04 |
트랜잭션 관련 (0) | 2024.04.03 |
인덱싱 (0) | 2024.04.02 |