Train
3. SQL Injection
조작된 SQL 쿼리문이 데이터베이스에 그대로 전달되어 비정상적인 명령을 실행시키는 공격 기법 공격기법 1) 인증 우회 보통 로그인을 할 때, 아이디와 비밀번호를 입력한다. 다음과 같은 쿼리문이 들어와 로그인한다고 가정해보자 SELECT * FROM USER WHERE ID = "taeho" AND PW = "1234"; 여기서 위 쿼리를 보내면서 아래와 같이 DELETE 쿼리를 보낼 때 SQL Injection이 생긴다. SELECT * FROM USER WHERE ID = "taeho" AND PW = "1234"; DELETE * FROM USER WHERE ID = "1"; 이렇게 되면 나는 로그인만 하면 다른 사람의 아이디를 삭제시켜버릴 수 있다. 이 밖에도 다음 코드와 같이 OR문을 추가해 데이..
2. Join
두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법 테이블을 연결하려면 최소한 하나의 Column을 공유하고 있어야 한다. Join의 종류에는 다음과 같다. INNER JOIN (그냥 JOIN으로도 적음) LEFT OUTER JOIN(LEFT JOIN으로도 적음) RIGHT OUTER JOIN(RIGHT JOIN으로도 적음) FULL OUTER JOIN(FULL JOIN으로도 적음) CROSS JOIN SELF JOIN 예시에 사용할 두 테이블은 다음과 같다. department 부서코드(pk) 부서명 001 인사부 002 기획조정실 003 재무회계부 employee 직원ID(pk) 직원이름 부서코드 2013 김태호 001 2014 김태훈 001 2015 김태희 002 2016 김태현..
1. Key
Key란? 데이터베이스에 저장되어 있는 레코드를 유일하게 구별할 수 있는 식별자(identifier)를 의미한다. 즉, 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성). 1. 후보키 (Candidate Key) 튜플을 유일하게 식별할 수 있는 속성들의 부분집합(기본키로 사용할 수 있는 속성들) 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야한다. 릴레이션에 있는 모든 튜플에 대해 유일성과 최소성을 만족해야한다. 학번 주민번호 성명 성별 1001 810429-1231457 김형석 남 1002 800504-1546781 김현천 남 1002 811216-2547842 류기선 여 1003 910322-1233445 ..