1. 파일업로드
1) 확장자 체크는 화이트 리스트로 관리하기
2) 파일명저장될때 임의의 문자열을 덧붙이기
3) 업로드 디렉터리를 제한하고, 첨부파일이 저장된 디렉터리의 실행권한 chmod제한하기
2. XSS
1) 종류
a) 반사 XSS: 서버를 이용하지 않고, link를 이용하여 스크립트를 실행 (이미지, 비디오, a href 등)
b) 저장 XSS : 서버를 이용한 스크립트 실행. 일단 서버를 타고 한번 데이터베이스에 저장되고, 저장된값이 그대로 다시 브라우저로 노출되면서 스크립트가 실행된다.
2) 방어
- 스크립트 치환 라이브러리 사용
3. SQL injection
- prepared statement 사용.
prepared statement의 경우 미리 sql질의문을 정적으로 컴파일 한 후에, 파라메터가 들어갈 자리만 남겨둔다. 동적으로 생성되는 파라메터는 문자열로 취급되어 들어가기 때문에 안전하다. 일반 statement의 경우 파라메터와 함께 그 순간 동적으로 쿼리를 생성하기때문에 위험하다.
4. 취약한 패스워드 정책
- 세가지 종류 이상의 문자구성, 8자리 이상의 길이
-혹은 두가지 종류 이상의 문자구성, 10자리 이상의 길이
5. 자동화 공격
- brute-forth 공격을 자동화하여 패스워드 크래킹이 가능하므로, 이것을 방지하기 위해서는 인증시도 횟수를 제한하여야 한다.
- 패스워드만 틀린것인지, 아이디/패스워드 둘다 틀린것인지 구별할 수 있어야 한다.
6. 취약한 관리자 페이지 접근
- 관리자 로그인 페이지 주소 변경
- 관리자 로그인 페이지 접근 레벨 -> ip주소로 설정. 반드시 사내ip에서만 접근 가능해야 한다. tomcat-users
7 백업 및 테스트파일 존재
- 공개형 솔루션의 샘플파일
- 불필요한 테스트 페이지 혹은 개발페이지
- 삭제, 디렉토리 경로변경, 접근제한 설정 등.
8 세션 재사용 및 타임아웃 설정
- 로그인마다 동일한 세션아이디가 생성될경우 취약
- 일정시간이 지난 후 재접속시에도 로그인 상태가 유지될 경우 취약(권고: 30분)
- 쿠키 제거 & 세션 제거 함께 해야한다.
-로그인 시마다 새로운 세션 아이디가 발급될 수 있도록 해야한다.
댓글 없음:
댓글 쓰기