카테고리 없음2024. 4. 9. 16:45CORS

CORS Cross-Origin Resource Sharing의 약자로 서로 다른 출처에서 리소스를 공유한다는 뜻이다. 기본적으로 브라우저는 악의적인 웹사이트나 앱에서 사용자의 브라우저를 통해 다른 도메인에 있는 정보에 접근하여 보안상의 위협이 될 수 있기 때문에 교차 출처의 HTTP 요청을 제한한다. 언제 사용하지? 서버 사이드 렌더링의 경우 유저 A의 브라우저에서 B라는 도메인 사이트에 접속하면 B에서 바로 웹 페이지를 제공한다. 이렇게되면 요청을 보낸 B에서 응답이 발생하여 동일한 출처를 가지기 때문에 CORS 설정이 따로 필요하지않다. 하지만 클라이언트 사이드 렌더링의 경우 B라는 도메인에 접속하면 B에서 페이지를 받고 C 서버로부터 데이터를 받아서 페이지를 렌더링하기 때문에 서로 다른 출처를 가..

카테고리 없음2024. 4. 9. 16:17CSRF와 XSS

CSRFcross site request forgery의 약자로 악의적인 사이트에서 위조된 요청을 통해 공격하는 것을 뜻한다. 예를 들어 유저 A가 N 은행 사이트에 로그인해서 인증된 상태일 때, 악의적인 사이트 X에서 N 사이트에 대해 유저 A의 브라우저로 비밀번호 변경 요청을 보낸다면? 실제 유저 A의 N 사이트 비밀번호와 아이디를 얻어 X 사이트의 해커가 유저 A의 계정으로 로그인을 할 수 있게된다.이런식으로 인증된 유저의 브라우저를 통해서 공격하는 방식이 바로 CSRF이다. XSSCross-Site Scripting의 약자로 악의적인 사이트에서 강제로 스크립트 코드를 실행해서 유저의 정보를 탈취하는 공격을 뜻한다. 예를 들어 유저 A가 X 사이트에 접근했을 때 X 사이트에서 스크립트를 실행해서 A..

카테고리 없음2024. 3. 26. 16:58JWT + Spring Security 환경의 Controller 테스트에 인증 정보 주입하기

문제 아래 Controller에 대한 테스트 코드를 작성하는 도중 인증 정보가 없어서 NPE가 발생하는 문제가 생겼다. @PostMapping("/new") public ResponseEntity studySave(@RequestBody @Valid RequestStudyGroupDto dto, @AuthenticationPrincipal CustomUserDetails user){ StudyGroupDto studyGroupDto = studyService.createStudyGroup(dto, user.getId()); return ResponseEntity.status(HttpStatus.CREATED).body(studyGroupDto); } 해결 이전에 인증 과정을 통과하기 위해서 @WithMo..

카테고리 없음2024. 3. 7. 15:34[Oracle] 계층형 쿼리

계층형 모델 인스턴스에서 다른 인스턴스의 속성 값을 통해 상위와 하위를 구분할 수 있는 테이블 예시 직원 아이디 이름 상사 아이디 1001 김철수 null 1002 신짱구 1001 상사의 아이디를 통해 '짱구'의 상사가 '철수'임을 알 수 있다. 계층형 쿼리 계층형 모델에서 계층을 통해 데이터를 가공해서 조회하기 위한 쿼리 예시 SELECT D.*, LEVEL FROM DEPT2 D START WITH PDEPT IS NULL CONNECT BY PRIOR DCODE = PDEPT; 쿼리 결과 DCODE DNAME PDEPT AREA LEVEL 1 0001 사장실 null 포항본사 1 2 1000 경영지원 0001 서울지사 2 3 1001 재무관리 1000 서울지사 3 4 1002 총무팀 1000 서울지..

image