Java 11

Spring Boot XSS 크로스사이트 스크립트 적용하기 with jsoup

1. 서론2. 적용 방법3. 결과적용했던 코드https://github.com/GHGHGHKO/roadmap-todo/commit/2b7f2543df849704f9784d3afc818ae07db72ef81. 서론회사에서 최근에 시작한 프로젝트에 보안 검사를 받았습니다.Request body를 통한 크로스사이트 스크립트 취약점이 도출 되었습니다. 도출되었던 방식은1. a_dns API Request body에 악성 script를 심어서 전송합니다.2. database에는 악성 script가 입력됩니다.3. 일반 고객이 b_dns 로 홈페이지에 접속합니다.4. 악성 script가 들어가 있는 정보를 조회합니다.5. 악성 script가 db에서 조회되어 고객에게 보여집니다.6. 해당 스크립트가 웹사이트에서 실..

SpringBoot 2024.12.01

Apache JMeter 사용해보기, 설치 (1)

1) JMeter 설치하기: https://pepega.tistory.com/86 2) REST API 부하주기: https://pepega.tistory.com/87 가볍게 사용해보는 정도로 글을 작성했습니다 :) 틀린 내용이 있으면 댓글 달아주세요! 자세한 내용은 JMeter Best Practices를 확인하면 좋습니다! https://jmeter.apache.org/usermanual/best-practices.html 환경 OS : Windows 11 target : 이 글에서는 Rest API를 테스트 합니다. 혹은 아무 주소를 사용해도 됩니다. :) 설치하기 jmeter는 java가 설치되어 있어야 합니다. java 설치 https://docs.aws.amazon.com/corretto/la..

테스트 2023.11.08

RequestParam(required = true) null exception 하는 법

전체 코드 https://github.com/GHGHGHKO/goose-auth-api-server GitHub - GHGHGHKO/goose-auth-api-server Contribute to GHGHGHKO/goose-auth-api-server development by creating an account on GitHub. github.com @Operation(summary = "GooseAuth delete item uris", description = "id로 접속 정보의 uri들을 삭제한다.") @DeleteMapping(value = "/items/{itemIdentity}") public ResponseEntity gooseAuthDeleteItemUris( @Parameter(nam..

SpringBoot 2022.10.05

jib 배포, 코드 배포, 코드 컨테이너, 앱 컨테이너 만들기

https://alden-kang.tistory.com/1 jib를 이용한 자바 앱 컨테이너화 오늘은 구글 클라우드 도구 중 하나인 jib를 이용한 자바 애플리케이션 컨테이너화 과정에 대해 살펴보려고 합니다. jib가 무엇인지 궁금하신 분들을 위해 간단한 설명과 예제 애플리케이션을 alden-kang.tistory.com 해당 출처를 기반으로 만들었습니다. 본 블로그에서는 java 11을 활용했습니다. jib은 해당 명령어를 실행하면 설정되어 있는 컨테이너 장소에 이미지를 push 하는 명령어이다. 자세한 내용은 출처에 있다. 바로 시작 build.gradle에 아래와 같이 설정한다. plugins { id 'org.springframework.boot' version '2.7.1' id 'io.spri..

SpringBoot 2022.07.15

Docker로 프로젝트(Springboot), DB(Postgres), 캐시(Redis) 연동하기

취미생활로 프로젝트를 하나 시작했다. 아직 github에 push 하진 않았지만 시작 중 방법을 올려보려고 한다. # Use postgres/example user/password credentials version: '3' services: goose-auth-api: image: gudrb963/goose-auth-api:latest container_name: goose-auth-api build: context: . ports: - 8080:8080 depends_on: - postgres environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/gooseauth - SPRING_DATASOURCE_USERNAME=gooseauth..

Docker 2022.07.15

springboot로 Rest api 만들기(8) SpringSecurity를 이용한 인증 및 권한부여

전체 소스코드 https://github.com/GHGHGHKO/Springboot/tree/main/pepega_chapter_8 GitHub - GHGHGHKO/Springboot: 블로그에 업로드 된 소스코드 블로그에 업로드 된 소스코드. Contribute to GHGHGHKO/Springboot development by creating an account on GitHub. github.com 이전 포스팅에서는 Spring에서 메시지를 처리하는 방법에 대해서 알아봤고 MessageSource를 이용하여 Exception Message를 고도화하였다. swagger에서 response body의 내용을 한글, 영어로 바꾸며 도출하는 내용을 포스팅 했었다. ​ 이번 포스팅에서는 SpringSecu..

SpringBoot 2021.10.22

springboot로 Rest api 만들기(7) MessageSource를 이용한 Exception 처리

시작 전 변경 사항이 있다! (2022.07.18 수정) https://github.com/akkinoc/yaml-resource-bundle/issues/103 bug: No libraries found for 'dev.akkinoc.util.YamlResourceBundle' · Issue #103 · akkinoc/yaml-resource-bundle Describe the bug use Gradle Groovy DSL I found No libraries found for 'dev.akkinoc.util.YamlResourceBundle' To Reproduce implementation 'dev.akkinoc.util:yaml-resource-bundle:2.4.1'... github.com 해..

SpringBoot 2021.10.22

springboot로 Rest api 만들기(6) ControllerAdvice를 이용한 Exception 처리

전체 소스코드 https://github.com/GHGHGHKO/Springboot/tree/main/pepega_chapter_6 GitHub - GHGHGHKO/Springboot: 블로그에 업로드 된 소스코드 블로그에 업로드 된 소스코드. Contribute to GHGHGHKO/Springboot development by creating an account on GitHub. github.com ​ 이전 포스팅에서는 본격적으로 API 서버 개발을 하기 전 API 인터페이스 및 결과 데이터 구조를 살펴보고 확장 가능한 형태로 설계해보았다. ​ API 성공에 대한 내용만 포스팅했지만 이번 포스팅에는 실패 시 ExceptionHandling과 결과 Message 처리에 대한 내용을 살펴보도록 하겠다...

SpringBoot 2021.10.22

Overloading, Overriding (Java)

- 오버로딩(overloading) : 기존에 없는 새로운 매서드를 정의하는 것 - 오버라이딩(overriding) : 상속받은 메서드의 내용을 변경하는 것 ​ 출처: https://all-record.tistory.com/60 [세상의 모든 기록] 오버라이딩(Overriding) 오버라이딩이란? 부모 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라 한다. 간단히 말하면 메서드를 다시 정의하는 것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public clas all-record.tistory.com ​ 오버로딩(overloading) //Overloading.java class Overloading { void overloadinTest() ..

Java 2021.10.21

java 클래스 구현, 상속, 자동차 예제

//Car.java public class Car { private String carname; //차 이름 protected int speed; //차 속도를 수정해야하기 때문에 protected public Car() {} public Car(String carname) //생성자 { this.carname = carname; //차 이름 this.speed = 100; //차 속도 설정 (100이 기본) } public String getName() { return this.carname; } public int getSpeed() { return this.speed; } public void setSpeedUp() { speed += 10; } public void setSpeedDown() { ..

Java 2021.10.21