Etc
SQL Injection
μ½λ μΈμ μ μ ν κΈ°λ²μΌλ‘ ν΄λΌμ΄μΈνΈμ μ λ ₯κ°μ μ‘°μνμ¬ μλ²μ λ°μ΄ν°λ² μ΄μ€λ₯Ό 곡격νλ λ°©μμ λ§νλ€.
λ°©μ΄ λ°©λ²
- κΆνμΌλ‘ μ ννλ λ°©λ²
- Query String μ μ€νμ κΆνμ λ°λΌ μ νν μ μλλ‘ νλ€.
- μ
λ ₯κ° κ²μ¦
- μ κ·μ νΉμ μ ν¨κ°μ vaildation νμΈμ νλ€.
- νΉμλ¬Έμ νΉμ SQL μμ½μ΄ λ±μ κ²μ¦νμ¬ μ°¨λ¨νλ€.
- μ΅μ κΆν μ μ λ‘ DB λͺ λ Ή μ ν
κ°λ¨ν μμ κ°μΌλ©° λνμ μΌλ‘λ μ μ₯ νλ‘μμ λ₯Ό μ¬μ©νλ λ°©λ²μ΄ μλ€.
Prepared Statement (μ μ₯ νλ‘μμ ) μ¬μ©
νμ‘΄νλ κ°μ₯ μ’μ λ°©λ²μΌλ‘ μ¬μ©μ μ μΌλΆ μ»΄νμΌ λμ΄ μ€νλλ€.
Query μ 미리 νμμ μ§μ νλ κ²μΌλ‘ μ§μ λ νμμ Query νμμ΄ μλλ©΄ μ€νλμ§ μλλ€.
try{
String uId = "admin";
String query = "SELECT * FROM user_info WHERE uId= ?"
stmt = conn.prepareStatement(query);
stmt.setString(1, uId);
ResultSet rs = stmt.executeQuery();
while(rs.netxt()) {
/* statement */
}
} catch () {
/* statement */
} finally {
/* statement */
}
μ°Έκ³ μλ£
μ€λ© (Sharding)
κ°μ ν μ΄λΈ μ€ν€λ§λ₯Ό κ°μ§ λ°μ΄ν°λ₯Ό λ€μμ λ°μ΄ν° λ² μ΄μ€μ λΆμ°νμ¬ μ μ₯νλ λ°©λ²μ μλ―Έ