Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 타임리프SpringEL
- spring
- 정처기실기요약
- mysql
- 정보처리기사실기요약
- 정보처리기사
- 이클립스없이cmd
- 타임리프변수
- git
- mysql다운로드
- 타임리프 특징
- HelloWorld출력
- 개체관계모델
- 정처기실기
- 타임리프유틸리티객체
- 타임리프날짜
- 타임리프Unescape
- mybatis
- mysql설치하기
- 타임리프URL
- cmd에서java파일실행
- 타임리프 표현식
- java
- thymeleaf
- 타임리프기본객체
- 정보처리기사실기
- MySQL설치순서
- ER모델
- 스프링부트설정
- 타임리프Escape
Archives
- Today
- Total
ye._.veloper
[ D B ] SQL Injection 본문
☁ SQL Injection (SQL 인젝션, SQL 주입)
SQL Injection Example
- 사용자가 ID와 PASSWORD를 입력하는 상황일 경우 Mabatis에 다음과 같이 쿼리가 있다고 할때,
" select * from tblUserInfo where userid = '${userid}' and userpw = '${userpw}' "
악의적인 유저(아이디 비밀번호를 모르는)가 비밀번호를 [password' OR 1=1 limit 1--] 라고 입력하게 되는 경우 단, 비밀번호는 암호화처리가 되어있지 않다고 가정!
" select * from tblUserInfo where userid = 'admin' and userpw = 'password' OR 1=1 limit 1-- ' "
쿼리 결과는 올바르지 못한 결과로 작동하게 된다.
싱글쿼테이션(')으로 감싸도 끝에 있는 싱글쿼테이션 1개가 -- 주석처리되고 1=1이라는 조건이 absolutely true로 만들기 때문에 홈페이지에 작성된 쿼리에 따라 sql Injection으로 충분히 해킹이 가능할 수 있다.
Ref.
Spring mybatis에서 #{ }문법과 ${ }문법의 차이점(feat. SQL Injection)
https://ko.wikipedia.org/wiki/SQL_%EC%82%BD%EC%9E%85
'D B' 카테고리의 다른 글
[ MySQL ] MySQL 설치하기_2 (MySQL 8.0.x 다운로드) (0) | 2023.02.16 |
---|---|
[ MySQL ] MySQL 설치하기_1 (MySQL 8.0.x 다운로드) (0) | 2023.02.15 |
[ D B ] Mybatis ${}와 #{}의 차이 (2) | 2023.01.24 |
[ DB ] Join이란? (0) | 2023.01.24 |
[ MySQL ] Multiple primary key defined - 오류 (2) | 2023.01.21 |
Comments