본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


전체 글674

2. 포멧 스트링(Format String) 포멧 스트링(Format String) 취약점은 외부로부터 입력된 값을 검증하지 않고, 입출력 함수의 형식(포맷 스트링)을 그대로 사용하는 경우에 발생되는 문제를 의미 합니다. 해당 취약점은 예전에 비해서 만나기 어려운 것이 웹서버(Web Application Server)의 버전이 높아짐에 따라 이러한 문제는 자연스럽게 해결 할 수 있습니다. 웹서버에 대한 아래 공격유형을 살펴보겠습니다. //#패턴1 (name이라는 변수에 %n값을 넣은 경우) https://주소?name=%n%n%n%n%n%n%n%n%n //#패턴2 (name이라는 변수에 %s값을 넣은 경우) https://주소?name=%s%s%s%s%s%s 해당 패턴을 통해서 웹서버가 오류나 또는 문제를 일으킨 다면 해당 값에 대한 유효성 검증을.. 2021. 11. 29.
1. 버퍼 오버플로우(Buffer Overflow) 버퍼 오버플로우(Buffer Overflow)는 정수형 변수 값이 허용되는 범위보다 크거나 작게 대입되어 문제를 일으키는 웹 취약점 중 한가지 입니다. 아래 Java에서 허용하는 숫자(Integer) 값의 범위 입니다. { System.out.println(Integer.MIN_VALUE); // -2147483648 System.out.println(Integer.MAX_VALUE); // 2147483647 } Integer로 파싱을 해야되는 데이터가 허용되는 값 보다 많거나 이하의 값이 나오면 오버플로우(OverFlow) 가 발생하기 때문에 숫자를 대입받는 코드에서는 이러한 부분에 대해서 검증을 해 주어야 합니다. 또한 사용자로부터 배열의 크기를 양수만 받아야 하는 경우인데 음수를 받게되면 음수 크.. 2021. 11. 29.
QuartzJobBean에서 ApplicationContext을 통해 서비스(Bean) 받기 스프링 부트에서의 스케줄과 관련된 대표적인 라이브러리인 쿼츠(Quartz)설정은 매우 간단 합니다. maven 또는 gradle에서 라이브러리를 추가하는 것 만으로도 쿼츠(Quartz)와 관련된 객체가 자동으로 어플리케이션 영역에 생성되기 때문입니다. 스케줄을 실행하는 대표적인 Job클래스의 형태를 먼저 살펴보겠습니다. import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.scheduling.quartz.QuartzJobBean; public class JobScheduler extends QuartzJobBean { @Override protected void exe.. 2021. 11. 26.
SpringBoot ErrorController(스프링부트 에러컨트롤러)에서 getErrorPath 메소드는 어디에? 스프링부트(Spring boot)에서 400, 401, 403, 404, 500 등등 오류를 관리하기 위해서 사용되는 기능 중 편리하게 적용 할 수 있는 방법 한가지는 ErrorController를 상속받는 것 입니다. 기능을 만드는 것은 어렵지가 않는데.. 구글링을 하다보면 ErrorController에서 상속을 받아 getErrorPath 메소드를 오버라이드(Overrride) 해 주어야 한다고 쓰여있습니다. 그래서 해당 내용을 참고하고 ErrorController 인터페이스를 상속받아 샘플코드를 만들어 보았습니다만.. 빨강색 오류가 나타났습니다. 오류내용이...ErrorController에 상속받을 메소드가 없다고 나온 것 인데.. 이게 뭔일인지 싶어서 해당 ErrorController 인터페이스를.. 2021. 11. 25.
인플럭스DB(influxdb) tag key, field key를 활용 Query 작성시 유의점 인플럭스DB는 시계열형태의 데이터베이스 입니다. 데이터를 시간단위로 넣는 비관계형 데이터베이스이며, 각종 로그나 시간별로 쌓이는 데이터 처리에 능숙 합니다. 이러한 인플럭스DB에서는 데이터를 저장 할 때 태그키(tag key)와 필드키(field key) 라는 형태가 존재 합니다. 관계형 데이터베이스를 기준으로 설명하면 일종의 컬럼 입니다. 두 키의 차이를 보기 위해 인플럭스DB에서 데이터베이스와, measurement를 만들어서 진행 해 보겠습니다. * 데이터베이스 이름 : hello_ifx * measurement 이름 : test_table measurement는 관계형 데이터 베이스 기준으로 일종의 table을 의미 합니다. 여기서는 test_table이라는 이름으로 데이터를 생성하여 보았습니다... 2021. 11. 24.
Java 클래스 컴파일 버전 확인(Java class check version, javap) 컴파일된 클래스를 확인하려면 javap 라는 명령어를 사용하면 됩니다. * 방법 : javap -verbose 대상.class 위 방법을 통해서 실행하면 아래 사진처럼의 모습이 나오게 됩니다. TestMethod.class 라는 파일을 확인 해 보았습니다. 개발 환경이 자바11 이였습니다. 그런데, 컴파일 해야되는 클래스가 자바7 환경이라..정말 자바7로 컴파일 되었는지 확인을 하고 싶었습니다. 위 사진의 중간쯤을 보시면 major version 이 51로 나온 것을 볼 수 있습니다. major version 51은 자바(java) 7을 의미 합니다. * 참고 : 자바 major 버전의 뜻 순서 자바 버전 major version 1 자바2 (1.2) 46 2 자바3 (1.3) 47 3 자바4 (1.4).. 2021. 11. 22.