Security Filter Chain & DelegatingPasswordEncoder
·
📘 Backend/Spring
Filter Chain Request URI Path를 기반으로 HttpServletRequest 를 URI Filter & Servlet 매핑 필터체인 안에서 순서를 지정할 수 있으며, 순서는 매우 중요 순서를 지정하기 위한 @Order & Ordered 인터페이스를 구현해서 순서 지정 FilterRegistrationBean을 이용해 순서 지정 가능 Spring Security의 Filter Chain은 URL별로 여러개 등록 가능 어떤 Filter Chain을 사용할지는 FilterChainProxy가 결정하며, 가장 먼저 매칭된 Filter Chain을 실행 Servlet Filter Chain의 2가지 종류 DelegatingFilterProxy(Servlet Filter Chain) Bean으..
Spring Security 구조
·
📘 Backend/Spring
📘Spring Security 어플리케이션에 Spring Security가 없을때 중요한 요소가 빠져있다. Authentication (인증) Authorization (인가) 웹 보안 취약점에 대한 방지 Spring Security를 사용하는 이유 특정 보안 요구사항을 만족하기 위한 Customizing 용이 유연한 확장 보안기능이 검증된 신뢰할만한 보안 프레임워크 Spring Security의 로그인 인증 방식 Form Login 방식 : SSR 방식의 어플리케이션에서 주로 사용 Security를 적용하여 보안 취약으로 인한 사고 방지 방법 SSL 적용 Role 별 권한 적용 많은 유형의 사용자 인증 기능 민감 정보 암호화 resource ACL 알려진 웹 공격 차단 Spring Security 용어..
HTTPS 적용
·
📘 Backend/Spring
📘사설 CA 발급 + HTTPS 적용 우분투, OpenSSL 사용 X Centos에는 인증서 발급을 위한 nss-tools가 이미 설치 되있으므로 설치 불필요 AWS 보안그룹 -> 사용할 포트 오픈 인증서 발급 & Application HTTP -> HTTPS 적용 ✅ AWS 인스턴스 생성 & pem -> ppk 변환 AWS Instance pem -> ppk 변환 ✅ EC2 인스턴스 보안그룹에 이어 2중 방화벽 firewalld 설치 AWS Instance ssh 연결, yum update, yum-utils, wget, firewalld 설치 ✅ 방화벽 포트, 서비스 오픈 ✅ 포트, 서비스 적용 확인 ✅ wget을 이용하여 mkcert 파일 download, 파일 권한 변경 mksert파일 wget,..
Cookie & Session & SQL Injection & CSRF
·
⚙️ Ops/CS
💡 Cookie 서버에서 클라이언트에 데이터를 저장, 클라이언트에 저장된 쿠키를 이용하여 데이터를 가져옴 Cookie Option Domain 도메인 불일치 시 쿠키 전송 X 도메인이란? 서브 도메인(ex: www)을 제외한 URL 중 포트까지의 URL을 의미함 이 옵션을 통해 도메인이 다를때 발생할 수 있는 취약점 공격에 대한 방어가 가능함 Path 세부 경로 라우팅 기능 Default Path = '/' 설정된 Path가 만족하는 경우, 하위의 경로가 존재해도 쿠키 전송이 가능함 MaxAge & Expires MaxAge : second 설정 == Session 쿠키 Expires : date 설정 == Persistent 쿠키 Secure https 프로토콜만 쿠키 전송 허용 Http..
Build & Deploy & DB 연동
·
📘 Backend/Spring
📘Application Deployment & Build IDE Tool이 없는 환경 Windows PS C:/{direction}> .\gradlew bootjar Git Project Directory 이동 ./gradlew build java -jar {project-name}.jar server-properties.active="" 프로젝트 빌드 어플리케이션 실행 Profile을 이용한 DB 설정 정보 포함 application-{name}.yml 형식의 환경 별 파일 생성 후 DB별로 설정 정보 분리 서버 배포 PaaS CF CLI 사용 - cf push acloudyspringtime -p target/{file-name}.jar IaaS AWS Beanstalk, Container Regis..