본문 바로가기

Study/Spring

코드로 배우는 스프링 웹 프로젝트 개정판 파일 업로드 파트 보안 취약점 본 게시물은 코드로 배우는 스프링 웹 프로젝트 개정판 (구멍가게 코딩단) 의 책을 보던중 파일 업로드 관련 부분에서 파일 업로드 확장자를 필터링 하는 부분에 보안 취약점 부분이 발견되서 이를 공유하고 해결방안을 간단하게 작성하고자 합니다. 우선 위의 책을 보셨다는 가정하에 설명을 드리고자 합니다. 책의 챕터 22를 보면 파일의 확장자와 크기의 제한을 클라이언트 부분에서 javascript를 통해 관리하고 있습니다. 책의 코드는 다음과 같습니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152$(document).ready(function(){ var regex = new RegExp..
Spring에 커넥션풀(Connection Pool) 등록 - HikariCP 커넥션풀(Connection Pool) 이란? 위의 그림처럼 풀(Pool)속에 데이터베이스와의 연결(커넥션)들을 미리 만들어 두고 데이터베이스에 접근시 풀에 남아있는 커넥션중 하나를 받아와서 사용한뒤 반환하는 기법을 말한다. (스레드 풀과 비슷한 개념이라 보면 된다.) 웹 애플리케이션의 경우 다수의 사용자가 데이터베이스에 접근해야 하는 상황이 생겼을때 사용자들이 요청할때마다 연결을 만들고 해제하는 과정을 진행하면 비효율적이다. 따라서 커넥션풀을 이용하여 미리 여러 연결을 만들어놓고 필요한 사용자가 요청시 미리 만들어놓은 연결을 주는 형식인 커넥션풀이 더욱 효과적이다. 커넥션풀은 다양한 구현체들이 존재한다. 그리고 Java에서는 커넥션풀을 사용할때 javax.sql.DataSource 라는 인터페이스를 사..