[5주차] SOPㆍCORS & XXSㆍSQL Injection

devyumi·2023년 10월 12일
0

Network

목록 보기
10/11

Origin (출처)

ㆍ 구성 요소: 프로토콜, 도메인, 포트

ㆍ 구성 요소가 모두 같은 때만 같은 출처라고 함

ㆍ SOP, CORS 등을 이용하여 타 도메인에 대한 검증을 함


SOP

ㆍ 동일 출처 정책

동일한 출처의 리소스만 공유할 수 있는 정책

ㆍ 기본적으로 클라이언트 A는 출처가 다른 B의 리소스를 사용할 수 없음


CORS

ㆍ 교차 출처 리소스 공유

다른 출처의 리소스를 공유할 수 있는 정책

ㆍ 서버에 허용된 출처를 명시하면 출처가 다르더라도 요청과 응답을 주고 받을 수 있음

ㆍ 배경: 서로 다른 출처 간의 상호작용이 필요한 기능을 원할하게 개발하기 위하여 등장

작동 방식

1) 클라이언트는 서버에게 origin 헤더를 포함하여 리소스를 요청함

2) 이때 origin 헤더는 도메인 B의 프로토콜, 도메인, 포트를 포함함

3) B의 출처가 서버에 저장된 것과 동일하다면 <Access-Control-Allow-Origin: 도메인 B>를 응답함

4) 클라이언트는 도메인 B의 리소스를 사용할 수 있게 됨




XSS

ㆍ 사용자 브라우저에 부정한 HTML 태그나 자바스크립트 등을 동작시켜 공격하는 것

ㆍ 보안이 취약한 웹사이트, 메일 등을 통해 공격함

ㆍ 유저가 함정에 걸리도록 유도하여 공격함

ㆍ 쿠키 정보 및 시스템 관리자 권한 탈취, 악성코드 다운로드 등의 문제 발생

공격 대상: 클라이언트

방지법

ㆍ 이스케이프 처리: <,>,/ 등의 특수문자를 텍스트 형태로 변환하여 스크립트 실행을 막을 것
ㆍ 화이트리스트 필터링: 관리자가 허용한 태그만을 사용하도록 할 것
ㆍ 사용자 입력에 대해 서버 측에서 필터링 할 것


SQL Injection

ㆍ 클라이언트의 입력값을 조작하여 서버의 DB를 공격하는 것

ㆍ sql 구문을 임의로 삽입하여 기존 쿼리문을 변조함

ㆍ DB 구조가 파악되어 중요 정보가 노출될 수 있음

공격 대상: 서버

방지법

ㆍ 유저에게 받은 값을 직접 sql로 넘기지 않을 것
ㆍ 정규 표현식을 사용하여 그 외 입력은 거부할 것
ㆍ 최소 권한으로 DB를 연결할 것
ㆍ DB 연결 문자열을 가급적 config 파일에 저장하지 않을 것




참고

https://blog.naver.com/funraon/222345124431
https://4rgos.tistory.com/1
https://4rgos.tistory.com/3

profile
Web Back-end Junior Developer

0개의 댓글