보안

    Clustered Index vs Non-Clustered Index

    몇일전에 Clustered Index와 Non-Clustered Index에 대해 저에게 물어보신 분이 계셨습니다. 제 기억 속에는 Clustered Index는 Primary Index와 비슷한 어구인가? 라는 생각과 테이블 당 1개만 생성할 수 있는 뜻이지 않을까 라는 유추만할 수 있을 뿐 전혀 모르겠었습니다. 또한 Primary Index와 Clusterd Index의 명확한 차이점을 모르기도 했습니다. 그래서 제 기억 속에 오랫 동안 자리 잡기를 바라는 마음으로 정리합니다. 데이터베이스에서 테이블의 데이터 탐색 속도를 향상시켜주기 위해 인덱스라는 개념을 제공하고 있습니다. 인덱스는 컬럼 단위로 생성되며, 하나의 컬럼 혹은 여러개의 컬럼에 인덱스를 지정할 수 있습니다. 또한 모든 질의는 먼저 인덱..

    서로 다른 도메인 간 통합 인증(SSO) 구현 방법

    서론 회사 프로젝트 중 SSO 프로젝트에 참여하게 되었습니다. 하지만 고민이 되는 지점이 있었습니다. 바로 서로 다른 도메인간 SSO(Single Sign On)을 구현해야 하는 점입니다. 기본적으로 서버는 브라우저에 저장되어 있는 쿠키 값으로 사용자가 로그인 상태인지 확인합니다. (물론 JWT를 사용한다면, 브라우저 WebStorage에 저장하여 사용자를 구별하는 방법도 있습니다.) 브라우저에서 쿠키가 저장되는 영역은 도메인으로 나뉘기 때문에 Cross domain간 어떻게 로그인을 유지할지 고민이 필요했습니다. 사용자 플로우상 요구 사항은 아래와 같습니다. 로그인 1. A.com 도메인에서 로그인을 수행한다. 2. 로그인을 수행하기 직전 엔드 포인트로 로그인이 완료된 상태로 돌아와진다. 2. B.co..

    OAuth 2.0 개념 총 정리

    들어가며 OAuth 2.0을 실무, 토이프로젝트에서 많이 사용했던 기술이지만 항상 함께 제공해주는 라이브러리로 간단하게 구현을 했었습니다. 하지만 여태 사용해본 라이브러리는 특정 구조를 가진 서버에서만 간편하게 사용할 수 있었고, 서버의 구조가 조금만 바뀌게 된다면 여지없이 직접 구현을 해야 됐습니다. 현재 회사에서 하고있는 프로젝트는 조금 독특한 서버 구조를 가지고 있는 상태에서 OAuth 2.0을 사용하게 되어 직접 구현을 하게 되었습니다. 이번 포스팅은 OAuth 2.0의 개념과 동작 방식을 설명하고 다음 포스팅에서 구현 방법에 대해 설명하겠습니다. OAuth 2.0 OAuth 2.0(Open Authorization 2.0, OAuth2)은 인증을 위한 개방형 표준 프로토콜입니다. 이 프로토콜에서..

    SQL Injection 이란? (SQL 삽입 공격)

    SQL Injection SQL Injection 이란 악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL 문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위를 말한다. 인젝션 공격은 OWASP Top10 중 첫 번째에 속해 있으며, 공격이 비교적 쉬운 편이고 공격에 성공할 경우 큰 피해를 입힐 수 있는 공격이다. 위의 만화에 대해 설명하자면, 저 학교에서 입력한 명령은 다음과 같을 것이다. INSERT INTO students (이름) VALUES ('학생 이름'); 여기서 Robert'); DROP TABLE students;-- 을 '학생 이름' 자리에 넣을 경우 다음과 같은 명령문이 된다. INSERT INTO students (이름) VALUES ('Rob..