본문 바로가기

Stack Overflow/스프링28

[스프링] 구글 리캡챠(reCAPTCHA) v3 개발 적용 방법(JSP) 구글 리캡챠(reCAPTCHA)는 크게 v2와 v3 으로 구분된다. v2는 우리가 흔히 아는 랜덤 이미지를 선택하거나, 퍼즐을 조립하는 식으로 인간 여부를 판별하게 된다. v3은 시스템에 내장하여 점수(Score)를 통해서 사람 여부를 판별한다. 대개 이정도로 아는 사람들이 많은데.... 리캡챠(reCAPTCHA) v3 는 v2 보다 더 좋은 장점이 한가지가 더 존재한다. 임의의 랜덤 토큰을 사용하여 검증을 진행하기 때문에 점수(Score) 변수로 추가 개발을 하지 않더라도, 프론트 단위에서 임의의 값을 서버로 넘겨 매크로나 반복작업을 하지 못하게 할 수 있다. 즉, 시간지연이 오래걸리는 작업 부분에서 디도스와 같은 반복작업공격을 막는데에 있어 탁월한 도움이 된다. 내용이 잘 이해가 되지 않는다면 하단 .. 2021. 12. 23.
[스프링] Apache 보안 취약점 패치 Log4j 2.17.0 교체 개발 방법 이전에 아파치재단에서 Log4j에 대해 2.15.0 패치를 하엿으나, 신규 취약점이 발견되어 2.16.0, 2.17.0 까지 패치가 진행되었습니다. 기존 2.15.0 패치를 진행할 때는 Log4j에 대해 1.x 버전을 사용하는 시스템에는 적용하지 않아도 되었으나, 신규로 발견된 취약점에서는 1.x에도 뚫려 2.17.0(신규) 패치를 권고하고 있습니다. 이번에 발견되어 알려진 취약점은 Log4j 2.x버전에 있는 JNDI(Java Naming and Directory Interface) 인젝션 취약점으로, 이를 악용하면 해당 시스템에 침투하여 원격 코드 실행(RCE)이 가능하게 됩니다. 패치를 하지 않을 시, 해당 취약점으로 백도어를 내장할 수 있으니 긴급 패치를 진행해야 합니다. (CVSS 스코어 10점.. 2021. 12. 22.
[스프링] SSL API 통신 시 SSLHandshakeException & CrossDomain ERROR 오류에 대한 대응을 위한 코딩방법 크롬 브라우저에서 보안 강화 정책으로 이제 다른 도메인과 통신을 지행할 때, SSL 검증을 진행하여 동일한 도메인이 아닌 경우 통신오류를 발생시킨다. 즉, 이전과 다르게 SSL 통신 루틴을 처리해주지 않으면 SSLHandshakeException 또는 CrossDomain 오류를 발생시킨다. 따라서 인증서와 관련된 SSL 이슈 대응은 매우 중요하며, 전체적인 공통 클래스로 만들어놓고 다른 도메인과의 API 통신 시 SSL을 처리를 기본적으로 해줘야 한다. 다음은 스프링에서 SSL API 통신에 대해 기술한다. 1. 요약 1.1 jks 인증서 파일을 준비하여 프로젝트에 적절히 위치 시킨다. 1.2 공통 SSL 메소드를 RestTemplate 클래스를 동시에 초기화 한다. 1.3 API 데이터 교환을 시행한.. 2021. 12. 21.
[스프링] Byte 데이터를 뷰에 이미지로 보여주기 스프링을 작업하면 DB에서 읽어온 데이터를 웹페이지에 뿌려줘야할 일이 자주 생긴다. 디비에서 읽어온 byte[] (byte array) 데이터를 뿌려주는 방법을 소개한다. //JAVA byte[] imgByte = "DB에서 읽어온 Byte Array 데이터" byte[] byteEnc64 = Base64.encodeBase64(imgByte); String imgStr = new String(byteEnc64 , "UTF-8"); // 뿌려주는 방식은 다양하게 mav.addObject("imgStr", imgStr); 인코딩 방식은 기본으로 UTF-8로 적시하였지만, 한국 IT환경에서 euc-kr 환경도 많으니 적소적시 환경에 따라 입력하면 된다. JSP //VIEW //하기와 같이 태그를 작성한다 스.. 2021. 12. 19.