[데이터베이스] SQL과 NOSQL의 차이
·
CS 지식/[데이터베이스]
SQL (관계형 DB) SQL을 사용하면 RDBMS에서 데이터를 저장, 수정, 삭제 및 검색할 수 있음 핵심적인 두 가지 특성 데이터는 정해진 데이터 스키마에 따라 테이블에 저장됨 데이터는 관계를 통해 여러 테이블에 분산됨 데이터는 테이블에 레코드로 저장되는데, 각 테이블마다 명확하게 정의된 구조가 있음 해당 구조는 필드의 이름과 데이터 유형으로 정의됨 따라서 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없음 즉, 스키마를 수정하지 않는 이상은 정해진 구조에 맞는 레코드만 추가가 가능한 것이 관계형 데이터베이스의 특징 중 하나 또한, 데이터의 중복을 피하기 위해 ‘관계’를 이용함 하나의 테이블에서 중복 없이 하나의 데이터만을 관리하기 때문에 다른 테이블에서 부정확한 데이터를 다룰 위험이 없어지는 ..
[데이터베이스] SQL Injection
·
CS 지식/[데이터베이스]
해커에 의해 조작된 SQL 쿼리문이 데이터베이스에 그대로 전달되어 비정상적 명령을 실행시키는 공격 기법 공격 방법 1) 인증 우회 보통 로그인을 할 때 아래와 같은 쿼리로 전송될 것 SELECT * FROM USER WHERE ID = "abc" AND PASSWORD = "1234"; SQL Injection으로 공격할 때, input 창에 비밀번호를 입력함과 동시에 다른 쿼리문을 함께 입력하는 것 1234; DELETE * USER FROM ID = "1"; 보안이 완벽하지 않은 경우, 이처럼 비밀번호가 아이디와 일치해서 True가 되고 뒤에 작성한 DELETE 문도 데이터베이스에 영향을 줄 수도 있게 되는 피명적인 상황 이 밖에도 기본 쿼리문의 WHERE 절에 OR문을 추가하여 '1' = '1'과 ..