How to install Docker # 패키지 목록 업데이트 sudo apt-get update # 필요한 패키지 설치 sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common # Docker GPG 키 다운로드하여 시스...
Java Intermediate_2 (CollectionFramework)
배열(Array) 배열의 특징 배열에서 자료를 찾을 때 인덱스(index)를 사용하면 매우 빠르게 자료를 찾을 수 있다. 인덱스를 통한 입력, 변경, 조회의 경우 한번의 계산으로 자료의 위치를 찾을 수 있다. 가장 기본적인 자료 구조이고, 인덱스를 사용할 때 최고의 효율 배열의 인덱스 ...
[Issue] DNS with www
Issue “www” 포함이 안된 도메인은 본인 인증 및 소셜 로그인 작동 x 해결방안: ENUM 혹은 redirectUri 에 하드코딩 된 도메인 정보를 Request 객체를 활용하여 분기처리 본인 인증 @Value("${spring.profiles.active}") private List<String> SPRING_PR...
[Issue] Jasypt
Jasypt 기본 암호화 기능을 추가할 수 있도록 하는 Java 라이브러리 설정파일에 하드코딩된 정보를 암호화해서 관리 dependency 추가 # build.gradle file implementation 'com.github.ulisesbocchio:jasypt-spr...
Log Interceptor
preHandle() @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if (handler instanceof HandlerMethod) { ...
[Issue] Integer Overflow
GetMapping 에 해당하는 url(“https://test.com/board/detail/5”)이 존재하고 해당 메소드의 파라미터 타입이 Integer 일 경우에 정수 범위보다 큰 숫자를 입력시 에러가 발생한다. e.g. “https://test.com/board/detail/52131232132142142142141” ...
[Issue] Exposure of Information
자바 클래스에 서버 정보, 도메인 정보 등이 노출되어 이 정보를 이용해 개발/운영 환경에 접근하여 공격받을 가능성이 존재 민감 정보들을 설정 파일(yaml)로 옮겨 활용 Resolved Issue # url url: prod: https://test.co.kr dev: http://11.1.111.111:8080 local: ...
[Issue] Manipulation Of File Path
경로 조작 문제 해결 방안 @Value("${a.b.c}") private String UPLOAD_PATH; public void deleteTest(String fileName) { Path targetPath = Paths.get(UPLOAD_PATH, fileName).normalize(); try { // ...
[Issue] CSRF Attack
CSRF(Cross-Site Request Forgery) 공격자는 사용자가 인지하지 못한 상태에서 사용자의 권한을 이용해 특정 요청을 서버에 보내도록 유도 공격자는 사용자의 권한으로 악의적인 작업을 수행 CSRF 공격 방어 Security Code private void csrf() throws Exception { ht...
Apache Jmeter
Set test scenario BlazeMeter 확장 프로그램 사용 테스트 시나리오 녹화 생성된 파일 JMeter로 실행 Condition of test 30초 단위로 5명의 사용자를 증가시키며 30명의 사용자에 도달 10분 동안 주요 화면을 순차적으로 조회 Setting...