본문 바로가기

Programming/DataBase

<SQL>SQL 인젝션 방어하는 방법중 하나 SQL Injection(SQL 삽입 공격)을 방어하는 방법에 대해 알아봅시다! 1. SQL Injection이란? Web Hacking 기법중 하나이며, 웹 애플리케이션의 Database에 질의(쿼리를 보냄)하는 과정 사이에 일반적인 값이 아닌 악의적인 의도를 갖는 구문을 삽입하여, 공격자가 원하는 SQL 쿼리문을 작동하게 하는 방법입니다. 주로 클라이언트가 입력한 데이터를 서버에서 필터링, 이스케이핑을 하지 못하였을 경우에 발생합니다. 이러한 문제 때문에 대부분의 데이터베이스 엔진은 의도치않은 입력을 방지하기 위하여 escape함수와 prepared statement를 제공합니다. SQL Injection 공격의 종류에는 크게 세 가지가 있습니다.1) 인증 우회 (AB : Auth Bypass)2) ..
[JDBC]로그인페이지를 을 만들어 봅시다. 홈페이지에서 중요한 회원가입을 DB와 연동하여 만들어 보았습니다. 로그인 페이지 - 로그인만을 위하여 심플하게 만들었습니다. - 아이디와 패스워드를 텍스트상자에 넣고 로그인을 누르면 넘어가는 방식입니다. - 회원가입을 통해 DB에 아이디, 패스워드 및 개인정보들을 넣어두고, 로그인 할 때 DB에서 아이디와 패스워드를 가져와 비교하여 접속하는 방식입니다. (로그인 화면 코드) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 function submit(){ document.aa.submit(); } //함수 호출하여 aa이름의 폼의 submit 실행 로그인 로그인 페이지 아이디 패스워..
(SQL)숫자 함수에(단일행 함수) 대하여 알아봅시다! ▣ 숫자형 함수란? ▷ 숫자를 입력받으면 숫자를 리턴하는 함수이다. ▣ 숫자형 함수의 종류 숫자형 함수함수 설명ABS(숫자)숫자의 절대값을 돌려준다SING(숫자)숫자가 양수인지. 음수인지, 0인지를 구별한다MOD(숫자1, 숫자2)숫자1을 숫자2로 나누어 나머지값을 리턴한다.MOD 함수는 % 연산자로도 대체가능함CEIL/CEILING(숫자)숫자보다 크거나 같은 최소 정수를 리턴한다.FLOOR(숫자)숫자보다 작거나 같은 최대 정수를 리턴한다.ROUND(숫자, [, m ]숫자를 소수점 m자리에서 반올림하여 리턴한다.m이 생략되면 디폴트값은 0이다.TRUNC(숫자, [, m ]숫자를 소수점 m자리에서 잘라서 버린다.m이 생략되면 디폴트값은 0이다.SQL SERVER에서 TRUNC 함수는 제공되지 않는다.SIN,..
(SQL) 문자 함수(단일행 함수)의 종류에 대해 알아봅시다. ▣ 단일행 함수란? ▷ 단일행 함수는 SELECT, WHERE, ORDER BY절에 사용할 수 있으며, 다중행 함수와는 달리 ROW마다 한번씩 처리하는 함수이다. ▣ 문자함수란? ▷ 연산 대상이 문자이며, 반환 값은 함수에 따라 숫자 또는 문자를 반환한다. ▣ 문자함수의 종류 문자형 함수함수 설명TRIM([지정문자] from 문자열) LTRIM(문자열,[제거할 문자])RTRIM(문자열,[제거할 문자])문자열의 첫 문자부터 확인해서 지정문자가 나타나면 해당 문자를 제거한다. 왼쪽에 있는 대상 제거오른쪽에 있는 대상 제거CONCAT(‘문자1’,‘문자2’)두 문자(열)을 연결하여 반환하는 함수CHR(아스키 코드값)아스키 코드값을 문자로 반환하는 함수ASCII(‘문자’)문자를 아스키코드 값으로 반환하는 함수UP..
(DB) SQL이란 무엇인가? SQL에 대해 글을 썼지만...SQL이 뭔지 알아야 할 것 같다, SQL이 뭘까? ▣ SQL(Structured Query Language)이란 무엇인가? ▷ SQL은 관계형 데이터베이스 언어이다. ▷ 데이터의 삽입, 삭제, 갱신, 질의, 보호(보안) 명령문으로 구성되어있다. ▷ SQL은 관계 데이터베이스 언어로 비절차적 데이터베이스 언어로 분류한다. ▣ SQL기능에 따른 분류 ▷ 데이터 정의어(DDL : Data Definition Language) - 테이블의 관계의 구조를 생성하는데 사용하며, CREATE, ALTER, DROP 등이 있다. ▷ 데이터 조작어(DML : Data Manipulation Language) - 테이블에 데이터를 검색, 삽입, 수정, 삭제하는데 사용하며, SELECT, I..
(DB)데이터베이스 모델의 종류엔 무엇이 있을까? 데이터베이스 모델의 종류에는 무엇이 있는지 알아보자 ▣ 계층데이터 모델(Hierarchical Data Model) ▷ 데이터를 저장하는 단위(Entity)의 구조가 상하 종속적인 관계로 구성 ▷ 개체를 노드로 표현하고 개체 집합들 사이의 관계를 링크로 연결한 트리(Tree)형태의 자료구조 ▣ 망 데이터 모델(Network Data Model) ▷ CODASYL이 제안(CODASYL DBTG 모델이라고도 함) ▷ 그래프를 이용해서 데이터 논리구조를 표현한 데이터 모델 ▷ 상위와 하위 레코드 사이에서 다대다(N : M) 대응 관계를 만족하는 구조 ▣ 관계 데이터 모델(Relational Data Mode) ▷ 개체 집합에 대한 속성 관계를 표현하기 위하여 개체를 테이블(Table) 로 사용하고, 개체 집합..
(DB) DBMS(Database Management System)이란 무엇일까? DB를 관리하는데 도움을 주는 DBMS란 무엇인지한번 알아보도록 하자! ▣ DBMS(DataBase Management System)란? ▷ 사용자에게 데이터베이스를 생성하고 유지할 수 있게 하는 프로그램 집합 ▷ DBMS는 데이터베이스 언어를 갖고 있으며, 이를 통해 데이터의 삽입/삭제/수정을 할 수 있다. ▣ DBMS의 기능 ▷ 데이터의 무결성 유지 - DB의 데이터는 실세계를 적용하는 규칙을 항상 만족해야 한다. - 서로 다른 부분에 있는 두 개의 데이터가 서로 모순되지 않아야 한다. 데이터의 일관성 유지. ▣ DBMS의 특성 ▷ 데이터의 논리적 독립성 - 한 속성에 가해진 변경이 동일한 테이블에서 다른 속성에 영향을 주지 않는것을 의미한다. ▷ 참조 무결성과 데이터 무결성 - 응용프로그램 개발 시..
(DB) 데이터베이스란 무엇일까? 데이터베이스 많이 들어 봤지만 생소하기도 한 단어이다.이 데이터베이스에 대해 알아보도록 하자! ▣ 데이터베이스란 무엇일까? ▷ 자료(Data) - 현실 세계에서 관찰이나 측정을 통해 수집한 단순한 사실이나 값. ▷ 정보(Information) - 의사 결정에 도움을 줄 수 있는 유용한 형태 - 자료를 가공(처리)해서 얻을 수 있는 결과를 의미 ▷ 데이터베이스 - 어느 한 조직체의 여러 응용 시스템들이 공동으로 사용할 수 있도록 통합하여 저장한 운영데이터의 집합. - 공동의 목적을 지원하기 위한 서로 관련된 자료들의 모임. - 주제와 관련된 의미 있는 데이터들의 모음. ▣ 데이터베이스의 정의 ▷ 통합된 데이터(Integrated Data) - 산재되어 있지 않고, 한 곳에 있어야 한다. - 모든 데이터가 ..