Chapter01 78

[ Spring Boot ] @SuppressWarnings( "unchecked" )

@SuppressWarnings( "unchecked" )이런 처음본게 있었다 찾아보니까 @SuppressWarnings 은 컴파일러 경고를 무시하도록 지시하는 어노테이션이라고한다 generics, deprecation, unused같은 상황에 컴파일 경고가 발생하는데 의도적으로 경고를 발생시킨것일 수도 있으니경고를 띄우지 말라는것 unchecked는 제네릭 타입 캐스팅과 관련된 경고임 ▼ ▼ ▼ ▼ ▼ ▼ ▼ 제네릭 개념 참고▼ ▼ ▼ ▼ ▼ ▼ ▼https://dev-emma-dev.tistory.com/301 [Spring boot] Generic제네릭이 뭐냐면 이다.가장 중요한 개념은 담을 때는 상관 없고, 꺼낼 때가 중요하다 임. Java 5 부터 사용한 기능인데예시로 보는게 이해가 빠름 ㄱㄱ..

[ Spring boot ] Generic

제네릭이 뭐냐면 이다.가장 중요한 개념은 담을 때는 상관 없고, 꺼낼 때가 중요하다 임. Java 5 부터 사용한 기능인데예시로 보는게 이해가 빠름 ㄱㄱ 제네릭을 사용하지 않는 경우List list = new ArrayList(); // 타입 정보 없음list.add("사과"); // Stringlist.add(123); // Integerlist.add(true); // BooleanString fruit = (String) list.get(1); 전부 Object 취급을 하고 담음.꺼낼 때 타입 캐스팅이 필요함. 제네릭을 쓰는 경우List list = new ArrayList();list.add("사과");list.add("바나나");// list.add(123); // ❌..

[ 보안 취약점 조치 ] Clickjacking 공격

보안 취약점 결과가 나왔는데클릭재킹 공격 항목에 걸렸다 Clickjacking 공격?? ???사용자가 웹사이트 화면을 보고 있다고 착각하게 만든 뒤,사실은 투명한 iframe 같은 곳에서 악성 페이지 클릭하게 유도하는 공격. (예를 들어외부 사이트가 우리 사이트 화면을 iframe에 몰래 띄우고,투명 버튼을 올려놔서 사용자가 본인도 모르게 그 투명 버튼을 클릭하게 유도함) 취약점 설명 이용자가 자신이 클릭하고 있다고 인지하는 것과 다르게 공격자가 의도하는 것을 이용자가 감춰진 링크를 클릭하게 속이는 악의적인 공격 방법이다. 잠재적으로 공 격자는 비밀 정보를 유출하거나 그들의 컴퓨터에 대한 제어를 획득할 수 있다. 양호기준외부 객체를 통해 해당 사이트가 참조되지 않는 경우 취약기준외부 객체를 통해..

[Spring boot ] Load balancer health Check

네니오지금 할게욥 build.gradle에 의존성 추가해주고 implementation 'org.springframework.boot:spring-boot-starter-actuator' application.yml도 작성management: server: base-path: /actuator endpoints: web: exposure: include: health, info endpoint: health: show-details: always 엄청 간단한게 안됐었던 이유는화이트 리스트에 넣는것을 깜빡했슴,, 첨에 실행할때 로컬에서도 잘 뜨구 컨테이너에 올렷을 때도 잘 뜬당 curl 날려서 확인해보..

[NCP API] 개인 정보 암호화 방식

민감한 개인정보를 DB에 암호화해서 저장하기 위해서NCP decrypt API를 사용했다. 암호화랑 복호화가 모두 서버측에서 수행하는 형식이라사용자는 데이터를 보내기만 하면 된다 encrypt : 평문 데이터를 API로 보내면 지정된 키로 ncp가 암호화해서 암호화된 데이터를 반환해줌decrypt : 암호문을 API로 보내면 내부 키로 복호화 후 평문을 반환해줌 시그니처생성 참고 https://dev-emma-dev.tistory.com/281 [ NCP API ] encrypt / decrypt, signature 생성 예시 코드NCP (Naver Cloud Platform) API를 사용하려면요청 인증을 하기 위해서 서명이 필요한데 HMAC-SHA256를 기반으로한 시그니처를 사용한다. (이..

Chapter01/Open API 2025.06.09

[ NCP API ] /encrypt 예시코드, /decrypt 예시코드

다른 글들에서 내용은 이미 설명했고,실제로 사용한 코드! public String encrypt(String plainText) throws Exception { String timestamp = String.valueOf(System.currentTimeMillis()); String urlPath = "/keys/v2/" + keyTag + "/encrypt"; String signature = generateSignature(timestamp, urlPath); String base64PlainText = Base64.getEncoder().encodeToString(plainText.getBytes(StandardCharsets.UTF_8)); Map requestBo..

Chapter01/Open API 2025.06.02

[ NCP API ] encrypt / decrypt, signature 생성 예시 코드

NCP (Naver Cloud Platform) API를 사용하려면요청 인증을 하기 위해서 서명이 필요한데 HMAC-SHA256를 기반으로한 시그니처를 사용한다. (이외에도 매번 accesskey, secretkey, timestamp 도 요구함) 이 중 아래 메서드에서 생성할 signature는 서버가 위조나 변조 없이 API를 정상적으로 요청되었는지검증하는 용도 public String generateSignature(String timestamp, String url) throws Exception { String method = "POST"; String space = " "; String newLine = "\n"; Strin..

Chapter01/Open API 2025.06.02

[ NCP SENS ] SMS 2Factor 인증

2차 인증으로 Google Authenticator를 사용하겠다고해서 QR생성하고 테스트한 내용을 전에 포스팅했는데NCP SENS API 사용해서 sms로 인증하는 방식을 사용하게되었다 참고 공식 링크SMS API ncp에서엑세스키, 시크릿키, 서비스 ID 를 ncp콘솔에서 발급받고,발신 번호도 등록해야한다 이런것들은 application.yml에 넣어놓고주입받아서 (@Value) 사용함 딱히 신경쓸건없고 저기 저 시그니처 생성하는게현재 시간(timestamp)이랑 method, url, accesskey, secretkey를 가지고조합해서 만드는것임 코드 참고하세용 public void sendSms(String recipientPhone, String code) throws Exc..

Chapter01/Open API 2025.05.22