[JAVA] 서블릿 필터 코드로 보안 헤더 설정하기 [HttpOnly, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection]
·
◎ Java/Java☕
- 서블릿 필터 코드로 보안 헤더 설정하기 아래는 보안 헤더를 한 번에 설정하는 통합 서블릿 필터 코드이다. 이 필터는 HttpOnly, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection를 모든 응답에 적용한다.HttpOnly: Set-Cookie 헤더에 HttpOnly 속성을 추가하여 모든 쿠키에 대해 적용되도록 설정X-Content-Type-Options: 브라우저가 MIME 타입을 스니핑하지 않도록 설정X-Frame-Options: 클릭재킹 방지를 위해 페이지가 내에 표시되지 않도록 설정X-XSS-Protection: 브라우저에서 XSS 필터를 활성화Content-Security-Policy: 외부 ..
[JAVA] 서블릿 필터를 사용한 기존 세션 무효화 [여러 pc에서 중복 로그인 막는 방법]
·
◎ Java/Java☕
- 서블릿 필터를 사용한 기존 세션 무효화 서블릿 필터를 사용하여 동일한 계정으로 로그인할 때 이전 세션을 무효화할 수 있다. 이 방법은 서버에서 관리하는 세션 맵을 이용하여 로그인 시 중복 로그인을 감지하고 처리하는 방식이다.- SessionManagementFilter.java 추가import javax.servlet.*;import javax.servlet.http.*;import java.io.IOException;import java.util.concurrent.ConcurrentHashMap;public class SessionManagementFilter implements Filter { // 사용자 ID를 키로 하고, 세션을 값으로 가지는 맵 private static fina..
[JAVA] Random 클래스란? [무작위 숫자(난수)를 생성하는 클래스]
·
◎ Java/Java☕
- Random 클래스란?Random 클래스는 Java의 java.util 패키지에 포함된 클래스로, 다양한 종류의 난수를 생성하는 데 사용된다.이 클래스는 시드(seed)를 기반으로 난수를 생성하며, 시드가 같다면 동일한 난수 시퀀스를 생성한다. - Random 클래스의 생성자기본 생성자 : 시드를 지정하지 않으면 '현재 시간(밀리초 단위)'을 시드로 사용하여 난수 생성기를 초기화한다.시드를 사용하는 생성자 : 특정 시드를 지정하여 난수 생성기를 초기화한다. 동일한 시드를 사용하면 같은 난수 시퀀스를 생성한다.Random random1 = new Random(); // 시드를 자동으로 현재 시간에 맞춰 생성Random random2 = new Random(12345L); // 시드를 12..
[JSP] 이전 페이지로 이동하는 방법 [브라우저 히스토리, HTTP Referer, 스크립트릿]
·
◎ Java/JSP📋
- 이전 페이지로 이동하는 방법JSP(JavaServer Pages)에서 이전 페이지로 이동하는 방법은 다양하다. 이전 페이지로 이동하는 방법은 브라우저의 히스토리를 이용하거나, 이전 페이지에서 제공한 링크나 버튼 등을 사용하여 이동할 수 있다.1. 브라우저의 히스토리를 이용한 이동 JavaScript를 사용하여 history.back() 메서드를 호출한다. 또는 태그에 onclick 이벤트 핸들러를 추가하여 이전 페이지로 이동할 수 있다.이전 페이지로2. 링크 또는 버튼을 사용한 이동 이전 페이지의 URL이 이미 알려져 있다면 해당 URL을 사용하여 링크를 만들 수 있다.이전 페이지로3. HTTP 리퍼러(Referer)를 사용한 이동 이전 페이지에서 현재 페이지로 이동할 때 HTTP 리퍼러 헤더를 이..
[JAVA] 자바에서 Map을 반복시키는 방법 [Java Map 반복문, 순회하는 방법]
·
◎ Java/Java☕
- 자바에서 Map을 반복시키는 방법 Map map = new HashMap(); // Map 생성 // 1. Iterator 사용 Iterator keys = map.keySet().iterator(); while (keys.hasNext()) { String key = keys.next(); System.out.println(String.format("key : %s, value : %s", key, map.get(key))); } // 2. Map.Entry 사용 for (Map.Entry elem : map.entrySet()) { System.out.println(String.format("key : %s, value : %s", elem.getKey(), elem.getValue())); } ..