반응형
자주 발생하는 웹 애플리케이션 보안 취약점
- XSS (Cross-Site Scripting)
- 악성 스크립트를 웹 페이지에 삽입하는 공격
- 사용자 입력값 검증 부재가 주 원인
- SQL Injection
- 악의적인 SQL 쿼리 삽입으로 DB 조작
- 입력값 필터링 미흡 때문
- CSRF (Cross-Site Request Forgery)
- 사용자 모르게 권한 있는 작업 수행
- 요청 출처 검증 없을 때 발생
- 인증/세션 관리 취약점
- 약한 비밀번호 정책
- 부적절한 세션 타임아웃
- 안전하지 않은 세션 저장소
- 취약한 접근 제어
- URL 조작으로 무단 접근
- 권한 검증 부실
- 민감 데이터 노출
- 암호화 없는 정보 저장
- HTTPS 미적용
- XXE (XML External Entity)
- XML 외부 엔티티 참조 허용
- 서버 파일 접근 가능
- 보안 설정 오류
- 기본 계정/비밀번호 그대로 사용
- 디버그 모드 켜둠
- 불필요한 서비스 실행
- 컴포넌트 취약점
- 오래된 라이브러리
- 패치 안 된 프레임워크
- Insecure Deserialization
- 신뢰 못할 데이터 역직렬화
- 원격 코드 실행 위험
보안 강화 방법
- 입력값 검증
- 모든 사용자 입력 서버에서 검증
- 화이트리스트 방식 사용
- 출력 이스케이핑
- HTML 특수문자 변환
- 컨텍스트별 인코딩
- 매개변수화 쿼리
- SQL Injection 방지
- ORM 활용
- 강력한 인증
- 다중 인증(MFA) 도입
- 강력한 비밀번호 정책
- 계정 잠금 기능
- CSRF 토큰
- 모든 폼에 토큰 추가
- 요청 출처 확인
- 세션 관리
- 세션 타임아웃 설정
- 로그아웃 시 세션 파기
- HttpOnly, Secure 쿠키
- 최소 권한 원칙
- 필요한 최소 권한만 부여
- 모든 접근 검증
- 데이터 암호화
- HTTPS 필수
- 저장 데이터 암호화
- 최신 암호화 알고리즘
- 보안 헤더
- Content-Security-Policy
- X-Content-Type-Options
- X-Frame-Options
- HSTS
- 에러 처리
- 상세 에러 숨김
- 로깅 시스템 구축
- 정기 업데이트
- 라이브러리/프레임워크 최신화
- 보안 패치 즉시 적용
- 보안 테스트
- 정기 보안 점검
- 자동 취약점 스캐닝
- 침투 테스트
- 로깅/모니터링
- 이상 활동 감시
- 로그 무결성 유지
- 실시간 알림
웹 보안은 개발 전 과정에서 고려할 핵심 요소.
취약점 이해와 모범 사례 적용으로 대부분 공격 방어 가능.
보안은 일회성 아닌 지속적 과정.
728x90
반응형
'개발환경' 카테고리의 다른 글
컨테이너와 오케스트레이션: Docker와 Kubernetes 완벽 가이드 (0) | 2025.05.15 |
---|---|
클라우드 컴퓨팅 공부 메모: AWS, Azure, Google Cloud 비교 및 인프라 관리 (0) | 2025.05.14 |
Git 브랜치 전략과 효과적인 코드 리뷰 방법 (0) | 2025.05.12 |
RESTful API와 GraphQL 비교 및 API 문서 작성법에 관한 메모 (0) | 2025.05.11 |
GraphQL 개념 정리와 활용법 (0) | 2025.05.11 |