분류 전체보기

· 스프링
서론최근 tdd 방식으로 사이드프로젝트를 진행중이다.tdd 방식은 시간도 더 걸리고 귀찮지만 이미 테스트코드가 있으니까 리팩터링 시 chat gpt를 적극 활용할 수 있다. 코드를 수정할 때도 테스트 딸깍으로 사이드 이펙트를 확인할 수 있어서 좋다. 또, 실패 테스트 작성 과정에서 예외 처리에 대해 신경쓰게 되어 꼼꼼한 예외처리가 가능해지는 것 같다. 컨트롤러에서 요청값을 받을 때 적용한 예외처리에 대해 간단하게 정리해보고자 한다. Bean Validation @GetMapping("/{encryptedCongressmanId}") public ResponseEntity ratingList( @PathVariable String encryptedCongressmanId, ..
· 일상
신년맞이+이사기념 데스크세팅을 해보았다.  키보드 : 한성gk993b마우스 : 로지텍lift노트북 Ctype 분배기 : 9만9천원짜리 쿠팡에서구매 회사에서는 mk950 키마세트를 쓰는데 매우 만족중이다. 개인 노트북 업무용 노트북 간 이지스위칭이 엄청 편하다. 몽이는 새 집에 아주 잘 적응했다. 집 평수는 같은데 체감상 더 넓게 느껴져서 몽이도 좋아하는 것 같다.얼마전에 회사 분들한테 몽이 사진을 보여줬는데 다들 귀엽다고 해주셔서 기분이 좋았다 ㅎ.ㅎ
· infra
회사에서 L4 스위치 관련해 이슈가 있었는데 관련 지식이 부족해 찾아보던 중 잘 정리된 포스팅이 있어 읽고 간단하게 정리해보았다.  L4 스위치란?L4 스위치는 서버 부하 분산=로드빌런싱 을 처리하는 장치다뿐만 아니라 프로토콜(TCP, UDP, HTTP 등)의 헤더를 분석한 정보를 토대로 부하 분산을 실시하고, source ip, destination ip를 NAT 해서 보낼 수 있다.관련 용어L4 스위치는 외부 접속용 공인 IP와 서버와 통신하기 위한 사설 IP를 갖게된다모든 요청은 L4스위치를 통해 서버로 들어오므로, 서버는 공인 ip가 필요없고 사설 ip만 갖는다.외부에서 서버 ip를 알 수 없고 악의적 공격이 제한된다.Virtual ServerL4 스위치의 Virtual Server : 외부에서 ..
· 테스트
컨트롤러 단위 테스트를 작성할 때는 @WebMvcTest 등으로 웹 계층의 빈만 주입받는다.이 때 컨트롤러가 의존하는 객체(서비스 등)는 @MockBean 등으로 만들어준다.mock 객체 stubbing을 해야한다나는 이제까지 mock 객체의 메서드가 호출된다면 stubbing을 해줘야 한다고 생각했다.예를 들어 컨트롤러 단위 테스트 시에 서비스는 stubbing을 통해 정상작동하는 것을 보장해야 컨트롤러에 대해서만 테스트 할 수 있다고 생각했다.@WebMvcTest(MessageController.class)class MessageControllerTest { @Autowired private MockMvc mockMvc; @MockBean private MessageService..
지난 글에 이어서 sql injection과 xxs등 이외 최약 사례에 대해 알아보자. sql injectionsql injection은 db 질의와 관련된 웹 파라미터에 악성 sql을 주입해 db, 서버를 공격하는 것이다. 여러가지 종류가 있는데, 하나씩 확인하며 이해해보자.sql injection 종류error based sql injection웹 페이지 응답 데이터에 dbms error message가 응답될 때 할 수 있는 공격 기법이다. dbms 에러를 유발할 수 있는 입력값을 입력하고 에러 메세지를 통해 정보를 탈취한다. blind sqlsql where 절 조건이 true일때와 false 일 때 응답값 유무를 확인해 취약점을 찾고 추가적인 공격을 통해 데이터를 얻는 방식이다. select *..
https를 사용하면 안전하다고 생각해서 비밀번호 등을 암호화 하지 않는 경우가 있다. 하지만 https를 사용하더라도 중간자 공격에 의해 비밀번호가 탈취될 수 있다. https의 동작 대칭 키와 비대칭 키대칭 키 방식은 하나의 대칭 키로 암호화, 복호화를 하는 것이다.최초 접근 시에 서버가 클라이언트로 대칭 키를 전달해 줘야 하는데 이 때 탈취당할 수 있다.비대칭 키 방식은 서버가 공개 키/개인 키를 갖고 있다가 클라이언트 요청 시 공개키를 주는 방식이다.대칭 키 방식에 비해 성능이 저하된다. ssl을 활용한 https보안성과 성능 두마리 토끼를 잡기 위해 실제로는 두 방식을 섞어서 사용한다. 서버(사이트)는 서버의 공개 키와 사이트 정보를 인증기관에 전달인증기관은 (서버 공개키 + 사이트 정보)를 인..
kt ds에서 진행하는 개발자를 위한 보안실무 교육을 이틀간 듣고 간단하게 정리해보고자 한다. 클라이언트 기반 인증 우회 url 직접 접근으로 인증 flow 우회 공격자가 인증에 성공할 시 접근하는 url이 /member/success.php 안다면, 해당 url로 직접접근해서 인증을 우회하는 방식이다. 인증 값 조작을 통한 인증 우회 인증 모듈 결과를 클라이언트 영역에서 조작하는 공격 방식예를 들어 임의의 sms 인증값을 입력하고 BurpSuite같은 웹 프록시 도구로 JS 코드를 조작(isAuth : false를 isAuth : true로 조작하거나, 실패 응답코드를 성공 응답코드로 조작하는 등)하여 로그인에 성공한다.응답 값에 인증번호 노출sms 인증 번호가 js상에 노출되는 경우 휴대전화 없이 s..
데이터베이스에서 쓰이는 인덱스에 대해 알아보자. 인덱스란?인덱스는 데이터베이스에서 데이터 검색(SELECT) 속도를 높이기 위해 사용되는 자료구조다. 인덱스 장점 SELECT (조회) 성능 향상인덱스 단점대략적으로 테이블의 10% 추가 공간 필요INSERT, UPDATE, DELETE가 자주 발생하면 성능에 악영향 인덱스 종류 클러스터형 인덱스 테이블 당 1개만 생성 가능 PK 컬럼에 대해 자동 생성 리프 노드가 실제 데이터 레코드를 포함따라서 실제 데이터 레코드는 클러스터형 인덱스 키 순서대로 정렬보조 인덱스한 테이블에 여러개 생성 가능 UNIQUE 제약 조건 컬럼에 대해 자동 생성 리프 노드가 실제 데이터 레코드의 위치 포함보조 인덱스 자체는 키에 대해 정렬됨동작 원리 일반적으로 클러스터링 인덱스, ..
찌땀
'분류 전체보기' 카테고리의 글 목록