[Bee-box] SQL μΈμ μ - GET/Select
- -
μ΄λ² ν¬μ€ν μ SQLμΈμ μ GET/Select μ λλ€.
SQLμΈμ μ μ΄ κ³΅κ²© κ°μλλ κ±°μ λΉμ·νμ§λ§ μ¬λ¬ μ’ λ₯κ° μμΌλ μ μμ§νμ¬ μ€μ΅νλλ‘ ν©μλ€~
μ€μ΅νλ λͺ¨λ 곡격μ μ€μ λ‘ μ¬μ©νμλ©΄ μλ©λλ€.
νμ©λ°μ§ μμ μλΉμ€ λμμ ν΄νΉμ μλνλ νλμ κΈμ§νλ©°,
λͺ¨λ λ²μ μ± μμ μ¬μ©μμκ² μλ κ²μ λͺ μ¬ν΄μ£ΌμΈμ.
λμ΄λ ν
GET/Select λ₯Ό μ€μ΅ν΄λ³΄λλ‘ ν΄μ!
'sqli_2.php' νμ΄μ§λ λλ‘λ€μ΄ λ©λ΄λ₯Ό μ¬μ©νμ¬ μ νν μνμ μ 보λ₯Ό νλ‘ λ³΄μ¬μ£Όλ€μ.
λν GET λ©μλλ₯Ό μ¬μ©νμ¬ μμ²νκΈ° λλ¬Έμ URLμμ λ³μκ° λ³΄μ λλ€.
νμΈμ ν΄λ³΄λ λλ‘λ€μ΄ λ©λ΄μ λ³μλͺ μ 'movie'μ΄κ³ μ«μνμ μ λ ₯ κ°μΌλ‘ λ°κ³ μμ΅λλ€.
************ μ§κ³ λμ΄κ°κΈ° ************
1. μ«μνλ§ μ λ ₯νλ λ³μμ SQLμΈμ μ μ μλν λλ SQLκ΅¬λ¬Έλ§ νμν©λλ€.
2. μμ λ°μ΄νλ₯Ό μ λ ₯νλ©΄ SQL ꡬ문 μ€λ₯κ° λ©λλ€.
3. μ£Όμ λ¬Έμλ #μ μ¬μ©νκΈ΄ νμ§λ§, μ£Όμμ μ¬μ©νμ§ μμλ κ³΅κ²©μ΄ κ°λ₯ν©λλ€.
URLμμ νμΈν μ μλ movie λ³μλ‘ SQLμΈμ μ μ μλνλλ°,
κΈ°μ‘΄ 쿼리μ κ²°ν©νμ¬ λ°μ΄ν°λ² μ΄μ€ μ 보λ₯Ό μΆλ ₯νλ UNION SELECT ꡬ문μ μ¬μ© ν΄μΌνλ€.
μ΄λ μ£Όμ ν κ²μ μ€μ μ¬μ©νλ λ³μλ₯Ό λ£μΌλ©΄ νμ΄μ§μλ κ·Έ κ°μ ν΄λΉνλ λ°μ΄ν°κ° λμ€λ―λ‘,
movie λ³μμλ μλ λ°μ΄ν°λ₯Ό λ£μ λ€μ SQL쿼리λ₯Ό μ λ ₯ν΄μΌ νλ€.
(ex : 0 union select 1,2,3,4,5,6,7 μ΄λ°μμΌλ‘ 쿼리λ₯Ό λ£μλλ° 2μ ν΄λΉνλ λ°μ΄ν°κ° μμΌλ©΄
κ·Έ λ°μ΄ν°κ° μΆλ ₯λ μ μμΌλ, nullλ‘ λ£μ΄μ£Όμ΄μΌ νλ κ²)
μ΄λ κ² URLμ μ‘°μν SQL 쿼리λ₯Ό μ λ ₯ν΄ μ£Όλ©΄
λ€μκ³Ό κ°μ΄ μΆλ ₯λμ΄, λ°μ΄ν°λ² μ΄μ€μ μ 보λ₯Ό μ μ μλ€.
ν μ΄λΈ λͺ μ νμ νκΈ° μνμ¬ SQLꡬ문μ movie λ³μμ μ½μ νκ³ information_schemaλ‘ λ°μ΄ν°λ² μ΄μ€μ μλ
ν μ΄λΈμ νμΈ ν΄λ³Έλ€.
쿼리 결과
ν μ΄λΈ λͺ κ³Ό κ΄λ ¨λ μ 보λ μλμ κ°μ΄ νλλ§ λμ¨λ€.
μΆλ ₯ κ°μ΄ ν μ€λ§ λμ€λ νμ΄μ§λΌμ λ°μ΄ν° λ² μ΄μ€μ 첫 λ²μ§Έ ν μ΄λΈλ§ μΆλ ₯νλ€.
λ°λΌμ MYSQL λ°μ΄ν°λ² μ΄μ€μ κΈ°λ³Έμ μΌλ‘ μλ 'mysql'κ³Ό 'information_schema'λ ν¬ν¨νμ§ μκ³
ν μ΄λΈ μ€ν€λ§, ν μ΄λΈ λͺ , μ»¬λΌ λͺ μ νμΈνλ 쿼리 ꡬ문μ μ λ ₯ν΄μ€λ€.
<< 쿼리 문 >>
0 union select null,table_schema,table_name,column_name,null,null,null from information_schema.columns where table_schema!='mysql' and table_schema!='information_schema'
μΈμ μ κ²°κ³Ό
mysql, information_schemaλ₯Ό μ μΈνκ³ κ°μ₯ μμμ μλ μ€ν€λ§ (bWAPP),
bWAPP ν μ΄λΈ μ€ν€λ§μμ κ°μ₯ μμμ μλ ν μ΄λΈ (blog)
blog ν μ΄λΈμμ κ°μ₯ μμμ μλ 컬λΌλͺ (id) λΌλ μ 보λ₯Ό νλ ν μ μλ€.
μΈμ μ μ±κ³΅
λμ λ°©μ
'λμ΄λ ν' μμλ movieλ³μμ 'μμ λ°μ΄ν'λ 'UNION SELECT' ꡬ문μ μ λ ₯νλ©΄,
μλμ κ°μ΄ 'SQL ꡬ문 μ€λ₯ λ©μμ§'κ° μΆλ ₯λμλ€.
νμ§λ§ 'λμ΄λ μ' μμλ movie λ³μμ 'μμ λ°μ΄ν'λ 'UNION SELECT' ꡬ문μ μ λ ₯νμ¬λ
SQL ꡬ문 μ€λ₯ λ©μμ§κ° μλ, μνλ₯Ό μ°Ύμ μ μλ€λ λ©μμ§κ° μΆλ ₯λλ€.
μ¦ SQLμΈμ μ μ΄ ν΅νμ§ μλ κ²μ΄λ€.
κ·Έλ¦¬κ³ URLμ μ΄ν΄λ³΄λ©΄ 'λμ΄λ ν'μλ λ€λ₯΄κ² sqli_2.php νμ΄μ§κ° μλ "sqli_2-ps.php" νμ΄μ§μ΄λ€.
Puttyλ‘ μ μνμ¬ μ½λλ₯Ό μ΄ν΄ 보μλλ
sqli_2-ps.php νμ΄μ§μ μμ€ μ½λμλ νΉλ³ν μ°ν ν¨μλ₯Ό μ¬μ©νμ§ μκ³ SQL 쿼리λ₯Ό νΈμΆνλ€.
μλ μ½λλ νμΈν΄λ³΄μ
λ¨Όμ , λ°μ΄ν°λ² μ΄μ€μμ κ°μ Έμ¨ λ΄μ©μ 'fetch_object' ν¨μλ₯Ό μ¬μ©νμ¬ κ°μ²΄λ‘ μμ±νλ κ²μ μ μ μλ€. (μλμ¬μ§μ°Έκ³ )
** php fetch_object() ν¨μμ λν μ€λͺ μ΄λ, μλ μ£Όμ μ°Έκ³ ν΄μ£ΌμΈμ **
https://www.w3schools.com/php/func_mysqli_fetch_object.asp
(μλ μ¬μ§μ) μ½λλ₯Ό μ΄ν΄λ³΄λ©΄ movie λ³μμ μ λ ₯ν μ«μ κ°μ΄ 'id' λ³μμ λμ λλ€.
id λ³μλ 'recordset'μ μ μ₯λ λ°μ΄ν°λ² μ΄μ€ λ΄μ©μ μμ λ²νΈλ₯Ό λ»νλλ°, 'bind_param' ν¨μλ₯Ό μ¬μ©νμ¬
λ°μ΄ν°λ² μ΄μ€μμ μ¬μ©νλ λ³μλ€μ λΆλ¬μ€κ³ 'execute' ν¨μλ‘ μΏΌλ¦¬λ₯Ό μ€ννλ€.
κ·Έλ¦¬κ³ λμ 'bind_result' ν¨μλ‘ κ° λ³μλ₯Ό μ°κ²°νκ³ 'store_result' ν¨μλ‘ μΏΌλ¦¬ κ²°κ³Όλ₯Ό μ μ₯νλ κ²μ΄λ€.
μ΄λ κ² sqli_2-ps.php νμ΄μ§λ λ°μ΄ν°λ² μ΄μ€μμ μΉΌλΌμ κ°λ³λ‘ νΈμΆνκ³ μ°κ²°νλ λ°©μμ μ¬μ©νμ¬
SQLμΈμ μ μ λμνλ κ²μ΄λ€.
+ μ°Έκ³ νμ€ λΆλ€μ μλ νΌμ³μ νμΈν΄μ£ΌμΈμ.
κ°μΈμ μΌλ‘ μ λ bee-box μ± μ 보며 곡λΆλ₯Ό ν΄λ λμλ°©μ λΆλΆμ΄ μ λλ‘ μ΄ν΄κ° μλλλΌκ΅¬μ,
κ·Έλμ λΉμ·ν λλμΌλ‘ μ΄ν΄νλλ° 100% μ λ΅μ μλ μ μμΌλ μ°Έκ³ ν΄μ£Όμκ³
λ€λ₯Έλ΄μ©μ΄(μ€λ₯) μλ€λ©΄ λκΈ λ¨κ²¨μ£ΌμΈμ!
μ λ μΌλ¨ μ λμλ°©μμ PreparedStatement μ λΉμ·ν κ°λ μΌλ‘ μ΄ν΄νλλ°μ,
μλ μ£Όμλ‘ κ°λ μ μ΄ν΄ν΄μ£Όμλ©΄ λ κ² κ°μ΅λλ€. μ€λͺ μ΄ μλμ΄μμ΄μμ.
https://qastack.kr/programming/3271249/difference-between-statement-and-preparedstatement
JAVAμμ μ¬μ©λλ SQLμ μ€νν μ μλ κ°μ²΄λΌκ³ μκ° νμλ©΄ λ κ² κ°μλ°,
Statement μ PreparedStatement λκ°μ§κ° 보μμ μΈ‘λ©΄κ³Ό μλ μΈ‘λ©΄μμλ μ°¨μ΄κ° μλλΌκ³ μ,
Statement λ³΄λ€ PreparedStatementλ₯Ό μ¬μ©νμλ κ²μ΄ 보μμΈ‘λ©΄μμ sqlμΈμ μ μ λ§μ μ μμ΄μ, λ κ°νλ€κ³ λ³Ό μ μλλ°μ.
SQLμ μ€ννλ κ°μ²΄λΌλ μ μμ μ½κ° λΉμ·ν μν μ νλ€κ³ μ λ μ΄ν΄νμ΅λλ€.
μλ μ£Όμλ₯Ό λ§μ§λ§μΌλ‘! μ΄ν΄ νμλλ° λμμ΄ λμ ¨μΌλ©΄ μ’κ² λ€μ γ γ
https://okky.kr/article/504647
λ€μ ν¬μ€ν μ 'Post/select'λ°©μμ λλ€.
'Game > Bee-box' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Bee-box] SQL μΈμ μ - AJAX/JSON/jQuery (0) | 2020.08.09 |
---|---|
[Bee-box] SQL μΈμ μ - POST/Select (0) | 2020.07.31 |
[Bee-box] SQL μΈμ μ - POST/Search (0) | 2020.07.24 |
[Bee-box] SQL μΈμ μ - GET/Search (0) | 2020.07.24 |
μμ€ν κ³΅κ° κ°μ¬ν©λλ€