[데이터베이스] 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'과 ..
[데이터베이스] JOIN
·
CS 지식/[데이터베이스]
조인이란? 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법 테이블을 연결하려면, 적어도 하나의 컬럼을 서로 공유하고 있어야하므로 이를 이용하여 데이터 검색에 활용함 Join 종류 INNER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN FULL OUTER JOIN CROSS JOIN SELF JOIN 1) INNER JOIN 교집합 기준 테이블과 조인 테이블의 중복된 값을 보여줌 SELECT A.NAME, B.AGE FROM EX_TABLE A INNER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP 2) LEFT OUTER JOIN 기준 테이블 값과 조인 테이블과 중복된 값을 보여줌 왼쪽 테이블 기준으로 JOIN을 한다고 생각하면 ..
[데이터베이스] Key
·
CS 지식/[데이터베이스]
검색, 정렬 시 Tuple을 구분할 수 있는 기준이 되는 Attribute 1. Cndidate Key (후보키) Tuple을 유일하게 식별하기 위해 사용하는 속성들의 부분 집합(기본키로 사용할 수 있는 속성들) 2가지 조건 만족 유일성 : Key로 하나의 튜플만을 유일하게 식별할 수 있음 최소성 : 꼭 필요한 속성으로만 구성 2. Primary Key (기본키) 후보키 중 선택한 Main Key 특징 - Null 값을 가질 수 없음 - 동일한 값이 중복될 수 없음 3. Alternate Key (대체키) 후보키 중 기본키를 제외한 나머지 키 = 보조키 4. Super Key (슈퍼키) 유일성은 만족하지만, 최소성은 만족하지 못하는 키 5. Foreign Key (외래키) 다른 릴레이션의 기본키를 그대로..
[네트워크] 대칭키 & 공개키
·
CS 지식/[네트워크]
대칭키(Symmetric Key) 암호화와 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘 동일한 키를 주고받기 때문에, 매우 빠르다는 장점이 있음 but, 대칭키 전달 과정에서 해킹 위험에 노출 공개키(Public Key) / 비대칭키(Asymmetric Key) 암호화와 복호화에 사용하는 암호키를 분리한 알고리즘 대칭키의 키 분배 문제를 해결하기 위해 고안됨.(대칭키일 때는 송수신자만 키를 알아야하기 때문에 분배가 복잡하고 어렵지만 공개키와 비밀키로 분리할 경우, 남들이 알아도 되는 공개키만 공개하면 되므로) 자신이 가지고 있는 고유한 암호키(비밀키)로만 복호화할 수 있는 암호키(공개키)를 대중에 공개함 공개키 암호화 방식 진행 과정 A가 웹 상에 공개된 'B의 공개키'를 이용해 평문을 암호화하여 ..
MySQL
·
Database/MYSQL
계정 접속 mysql -u 계정명 -p Enter password: 패스워드 입력 계정 확인 / 현재 계정 확인 select user, host from mysql.user; // 모든 계정 및 외부접근 허용정보 확인 select current_user; // 현재 접속 중인 계정 확인 USER 추가 create user 계정명; // 비밀번호 없이 create user '계정명'@localhost identified by '패스워드'; // 비밀번호 있는 계정 생성 create user '계정명'@'[하단 표 참조]' identified by '패스워드'; // 외부에서 접근 가능 계정 생성 표기 설명 % % 어디서든 IP XXX.XXX.XXX.XXX 해당 IP에서만 IP.% XXX.XXX.% 특정 대..