분류 전체보기76 Java Secure coding 자바에는 보안 코딩 지침이 있습니다. 보안 코딩 지침 참고 자료를 소개하는 글을 작성합니다. 1. Oracle공식문서 내용 목차는 아래와 같이 구성되어 있습니다. 소개 0 기초 1 서비스 거부 2 기밀 정보 3 주입 및 포함 4 접근성 및 확장성 5 입력 검증 6 가변성 7 객체 구성 8 직렬화와 역직렬화 9 액세스 제어 결론 참조 부록 A: JNI의 방어적 사용 1-1 Oracle 유튜브 내용 위 공식문서 프리젠테이션 유튜브입니다. 심심할 때 틀어두고 대강의 내용을 파악하기에 좋습니다. 2. 자바 시큐어 코딩 가이드라인, 책 번역서로 원서 추천하는 리뷰가 있었습니다. 3. 그외 OWASP 웹 애플리케이션 관리할 때 보안 취약성 파악하는 기준 10가지를 제공합니다. 전체적으로 개발 시 유의해야할 보안 사.. 2023. 4. 17. FCM토큰 저장 테이블 최적화 보호되어 있는 글 입니다. 2023. 4. 10. FCM을 이용한 푸쉬 알림 개발 보호되어 있는 글 입니다. 2023. 4. 9. [프로젝트]exception 을 static으로 만든 이유 보호되어 있는 글 입니다. 2023. 4. 7. 프로젝트 쿼리 최적화 작업 보호되어 있는 글 입니다. 2023. 4. 6. Spring Event 를 활용한 예약 푸쉬 발송 보호되어 있는 글 입니다. 2023. 4. 5. [REST API]프로젝트에서 경험한 API 설계 - HATEOAS 프로젝트에서 경험한 사례로 REST API 의 조건인 HATEOAS에 대해 알아보겠습니다. HATEOAS란 먼저 REST API는 6가지 주요 제약 조건을 가지고 있습니다. 클라이언트 서버 아키텍쳐 STATELESS 캐시 가능성 계층화된 시스템 코드 온디맨드(옵션) 균일한 인터페이스(uniform interface) 그 중에서 균일한 인터페이스라는 조건은 서버와 통신하는 단일 방법이 있음을 나타내는 것으로, RESTful API의 핵심이고 4가지 측면을 갖고 있습니다. 그 중에 하나가 애플리케이션 상태 엔진으로서의 하이퍼미디어 라는 것입니다. 다시 말하면, 리소스를 할당한 후 REST 클라이언트가 하이퍼링크를 통해 현재 사용 가능한 다른 모든 작업을 찾을 수 있어야 하는 것입니다. 예를 들면, 주문 정보.. 2023. 4. 4. Spring Security 디버깅 방법 Spring Security는 여러 필터에서 OAuth2.0 인증을 처리하는데요. 필터 목록을 갖고 있는 FilterChainProxy을 확인 해보면 디버깅의 실마리를 찾을 수 있습니다. 스프링 시큐리티가 어떤 식으로 OAuth2.0을 구현하는지 또는 에러가 났는데 API 호출로는 에러가 났다는 것 이외에 별다른 정보가 없을 때 디버깅하는 방법을 소개하겠습니다. 1. FilterChainProxy 의 doFilter 메서드 중 원하는 곳에 break point를 겁니다. 스프링 시큐리티 디버깅을 위해 제일 처음 FilterChainProxy에 브레이크 포인트를 걸어서 확인하는 이유는 Spring Security를 사용하면 서블릿 필터는 FilterChainProxy라는 스프링 빈에 필터를 위임합니다. 즉.. 2023. 3. 30. IN과 EXISTS 연산 동작 방식 차이 쿼리 작성할 때 IN과 EXISTS의 성능 차이에 대해서 종종 이야기하곤 합니다. 이 글에서는 먼저 IN과 EXISTS 연산 동작 방식에서 무엇이 다른지 알아보겠습니다. 그리고 NOT IN은 IN 절에 NULL 값이 있을 때 예상과 다른 결과가 도출되는데요. 그 이유에 대해 알아보겠습니다. 1 SQL엔진의 IN/EXISTS 비교 방식 차이 IN과 EXISTS 연산자의 주요 차이점은 다음과 같습니다. IN 연산자 EXISTS 연산자 1. IN은 여러 OR 연산자 대신 사용할 수 있습니다. 값이 반환되는지 여부를 확인하기 위해 EXISTS를 사용합니다. 2. IN은 하위 쿼리 결과가 작을 때 EXISTS 연산자보다 빠르게 작동합니다. 하위 쿼리 결과가 크면 EXISTS가 IN 연산자보다 빠르게 작동합니다. .. 2023. 3. 22. 스프링 시큐리티 DelegatingFilterProxy, FilterChainProxy 스프링 시큐리티에 아키텍쳐에 대해 하나씩 알아보고자 합니다. 처음은 DelegatingFilterProxy, FilterChainProxy로 서블릿 컨테이너와 스프링 컨테이너의 분리로 인해 발생하는 아키텍쳐에 대해 알아보려 합니다. 기반 지식 먼저 서블릿 컨테이너와 스프링 컨테이너를 도식화한 모습은 아래와 같습니다. [출처: mangkyu.tistory.com/18] web context는 서블릿 컨테이너가 포함된 부분으로 톰캣같은 WAS서버가 담당합니다. 인증/인가에 대한 다양한 요구사항 처리 서블릿 필터는 서블릿 스펙에 정의된 기술로 서블릿 컨테이너에서 생성되고 실행되는 객체입니다. 그러므로 스프링 컨테이너에 접근해서 스프링 빈(Bean)을 주입해서 사용할 수가 없습니다. 하지만 인증/인가에 대한 다.. 2023. 2. 15. OpenID Connect(OIDC) 공식문서 정리 OpenID Connect (OIDC)는 OAuth2.0 프로토콜 위에 있는 간단한 ID 계층으로, OAuth2.0은 인증 프로토콜인 반면 OIDC는 신원 인증 프로토콜로 클라이언트 서비스의 사용자 신원을 인증하는데 사용합니다. 블로그 본문은 OIDC 프로토콜에 대해 알아보기 위해 openid.net 내용 중 앞부분을 번역하고 정리한 내용입니다. OIDC에 인증은 3가지 종류가 있는데 인증 코드 흐름(Authentication Code Flow)을 사용한 인증을 정리했습니다. 번역 문장을 매끄럽게 표현한 부분과 개념 이해가 충분하지 않은 상태에서 구조가 복잡한 부분은 구글 번역 문장을 사용했습니다. 1 소개 OpenID Connect 1.0은 OAuth 2.0 [RFC6749] 프로토콜 위에 있는 간단한.. 2023. 2. 8. 필요없는 검사 예외 사용은 피하라 이펙티브자바 예외파트 아이템을 정리한 내용입니다. 아이템71 필요없는 검사 예외 사용은 피하라 검사 예외 검사 예외는 처리하여 안전성을 높일 수 있기 때문에 잘 사용하면 API와 프로그램의 질을 높인다. 검사 예외를 사용하는 경우 API를 제대로 사용해도 발생할 수 있는 예외 프로그래머가 의미 있는 조치를 취할 수 있는 경우 검사 예외의 한계 검사 예외는 호출자가 처리해야하는 강제성을 지니기 때문에 부담을 주게 된다. 검사 예외를 던지는 메서드는 스트림 안에서 직접 사용할 수 없다. 특히 메서드가 단 하나의 검사 예외만 던질 때 부담이 크다. 그 예외 하나 때문에 API 사용자는 try블록을 추가하고 스트림에서 사용하지 못하게 된다. 이런 상황에선 검사예외를 안 던질 방법이 없는지 고민해보자 검사 예외 .. 2023. 1. 15. 이전 1 2 3 4 5 ··· 7 다음