| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 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 |
- @scheduler
- ๋ ผ๋ธ๋กํน
- injection๊ณต๊ฒฉ
- GoogleLogin
- dockerhub
- SpringBoot
- db์ ๋ต
- Node.js
- oauth
- ์ค๋ธ์
- ์๋ฐ
- docker
- ์ฝ๋ฉํ ์คํธ
- CICD
- spring
- node.js mysql ์ฐ๋
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- db์ํคํ ์ณ
- ์ฝํ
- ์๊ณ ๋ฆฌ์ฆ
- ์ฟ ๋ฒ๋คํฐ์ค
- ๋์์ธํจํด
- java์ฑํ
- Personal Access Token
- spring scheduler
- ํฌ๋ก์ค์ฌ์ดํธ ์คํฌ๋ฆฝํธ
- Jenkins
- Java
- MySQL
- React
- Today
- Total
<Hello Hosung๐/>
[CS ์ง์]SQL Injection ๋ณธ๋ฌธ
[CS ์ง์]SQL Injection
์ข์ถฉ์ฐ๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ผ๊ธฐ๐ง 2024. 8. 15. 20:32

SQL Injection ์ ๋ง ๊ทธ๋๋ก SQL ๊ตฌ๋ฌธ์ ์ทจ์ฝ์ ์ ์ด์ฉํ์ฌ ๊ณต๊ฒฉํ๋ ๋ฐฉ์์
๋๋ค.
์๋ฅผ ๋ค์ด ๋ก๊ทธ์ธ์ ํด๋น ์ ์ ์ ์์ด๋์ ํจ์ค์๋๊ฐ ๋ง๋์ง ๊ฒ์ฌํ๊ธฐ ์ํด ์๋์ ๊ฐ์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ ๊ฒ์ผ๋ก ์๊ฐ๋ฉ๋๋ค.
//SELECT * FROM USER WHERER ID='' AND PW ='';
๋ง์ฝ ์์ด๋ ์
๋ ฅ์ฐฝ์ TESTID' ๋ฅผ ์
๋ ฅํ๊ฒ ๋๋ฉด '๊ฐ ํ๋ ๋์ฐํ์ ์ค๋ฅ
//SELECT * FROM USER WHERER ID='TESTID'' AND PW ='';
๋ง์ฝ ์์ด๋ ์ ๋ ฅ์ฐฝ์ ' or 1=1# ๋ฅผ ์ ๋ ฅํ๊ฒ ๋๋ฉด # ๋ค๋ก ์ฃผ์์ฒ๋ฆฌ ๋์ด์ ์ ์ฒด ๋ฐ์ดํฐ๊ฐ ์ถ๋ ฅ๋์ด ๋ก๊ทธ์ธ์ด ๋ ์ ์์ต๋๋ค.
//SELECT * FROM USER WHERER ID='' or 1=1#' AND PW ='';
๊ทธ ์ธ ์ฌ๋ฌ๊ฐ์ง sql injection ๋ฐฉ๋ฒ๋ค์ด ์์ต๋๋ค. ์ด๋ฌํ ๋ถ๋ถ์ ์กฐ๊ธ์ด๋ผ๋ ํด๊ฒฐํ๊ธฐ ์ํด์๋ Statement ํด๋์ค๊ฐ ์๋
PreparedStatement ๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์์ด๋์ ํจ์ค์๋๋ฅผ ์ธ์๊ฐ์ผ๋ก ๋ฐ์์ ์์ ๊ฐ์ ๋ถ๋ถ์ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
(ํด๋น ํ
์คํธ๋ Mysql, Eclipse, JDBC ์ฌ์ฉํ์์ต๋๋ค.)
//SQL Injection ๋ฐฉ์ง
PreparedStatement stmt = con.prepareStatement("select * from member where id=? and pw=?");
stmt.setString(1, id);
stmt.setString(2, pw);'๐ CS Information' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [CS ์ง์] JWT(Json Web Token) ์ด๋ (1) | 2024.11.16 |
|---|---|
| [DB] ํจ์จ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๋ฅผ ์ํ ๋ค์ํ ์ํคํ ์ณ (3) | 2024.11.15 |
| [CS ์ง์]Blocking/Non-Blocking, Sync/Async ๊ฐ๋ (0) | 2024.08.16 |
| [CS ์ง์]XSS(ํฌ๋ก์ค์ฌ์ดํธ ์คํฌ๋ฆฝํธ) (0) | 2024.08.15 |