파일 확장자 차단 시스템 - 김민기
어떤 파일들은 첨부 시 보안에 문제가 될 수 있다. 특히 exe, sh 등의 실행 파일이 존재할 경우 서버에 올려서 실행이 될 수 있는 위험이 있어 파일 확장자 차단을 한다.
1-1. 고정 확장자는 차단을 자주하는 확장자를 리스트이며, default는 unCheck되어져 있습니다.
1-2. 고정 확장자를 check or uncheck를 할 경우 db에 저장됩니다. - 새로고침시 유지되어야합니다. (아래쪽 커스텀 확장자에는 표현되지 않으니 유의해주세요.)
2-1. 확장자 최대 입력 길이는 20자리
2-2. 추가버튼 클릭시 db 저장되며, 아래쪽 영역에 표현됩니다.
3-1. 커스텀 확장자는 최대 200개까지 추가가 가능
3-2. 확장자 옆 X를 클릭시 db에서 삭제
- 확장자는 영어만 가능하도록 정규표현식으로 제한한다.
- 확장자 내용이 없는 경우 추가하지 못하도록 제한한다.
- 고정 확장자인 경우 커스텀 확장자에 등록을 제한한다.
- 이미 등록된 확장자의 경우 중복 등록을 제한한다.
- 로컬 스토리지를 활용한 고정 확장자 체크박스 상태유지 기능구현
- 여러 호스트에서 고정 확장자 체크박스를 동작 했을 때 상태(checked, unchecked)가 공유되지 않는 문제 발생
시도1. RDB조회
- 클라이언트에서 렌더링 시점에 서버에 고정 확장자 목록을 요청하고 데이터를 응답받아 DB에 있는 고정 확장자의 체크박스를 유지시킨다.
시도2. cache DB 이용 - 여러 호스트에서 동일한 key,value 값을 공유하는 아이디어
- 고정 확장자 등록 시 캐시 DB에 key, value 값 추가, 새로고침 시점에 캐시 DB 조회하여 체크박스를 유지 시킨다.
- 고정 확장자 삭제 시 key 값을 이용하여 remove