tomei
Categories
Tags
307 words
2 minutes
XSS와 SQL 인젝션
(ㅠ3ㅠ)
- SQL 인젝션 = 데이터베이스(서버)를 공격 → 쿼리를 안전하게 만들면 됨.
- XSS = 다른 사람의 브라우저(사용자)를 공격 → 웹 페이지에 출력할 때 안전하게 인코딩/출력하면 됨.
사실상 하나는 서버 공격, 하나는 클라이언트 공격으로 구분해야 한다.
공통 원칙
- 입력은 절대 신뢰하지 말라.
- 방어는 여러 층으롤 구성.
- 최소 권한을 적용해라.
대응법
SQL 인젝션 대응
- 쿼리에 사용자 입력 +로 붙이지 말고 항상 파라미터 바인딩 사용
- 입력 검증 > 허용되는 형식,패턴=화이트리스트만 통과
- 최소 권한 원칙 > DB 계청에 불필요한 권한 주지 않음
XSS 대응
- 컨텍스트별 이스케이프 처리 등 → HTML·JS·URL 등 위치에 맞게 인코딩해서 출력
- CSP 적용 > 외부 스크립트와 인라인 스크립트 실행 제안하기
- 서버는 템플릿 엔진의 자동 이스케이프 켜기 > 사용자 입력 자동처리
- 클라이언트는 안전한 DOM 조작, innerHtml 쓰지않기 sanitizer 같은거 쓰기
XSS와 SQL 인젝션
softourr.github.io/xss와-sql-인젝션.md
