일지이기 때문에 일기의 성격이 더 강합니다.

사실 3월 12일은 개인 사정으로 빠졌다.
다만 자료가 있어 공부할 겸 정리.
SQL 인젝션
3/12는 SQL 인젝션에 대해서 배웠다고 한다.
SQL 인젝션에 대해서는 다음 MDN의 글이 도움이 된다.
https://developer.mozilla.org/ko/docs/Glossary/SQL_Injection
SQL 인젝션 (SQL Injection) - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN
developer.mozilla.org
'or'1'='1 혹은 ' or 1=1 --라는 Magical String이 존재한다. 이게 왜 먹히는가? 하면 1=1은 항상 참이기 때문이다. 즉, where절에서 where 조건 = '내용' or 1=1을 사용함으로써, where을 참으로 하여 모든 레코드를 탈취할 수 있게 된다.
이를 연계한 union 삽입공격도 가능한데, 인젝션에 취약한 테이블을 먼저 이용하여 레코드를 탈취, 이후 UNION 코드를 사용하여 다른 테이블 정보를 아는 방법이 있다. 특히 oracle의 경우 모든 테이블의 정보를 ALL_TAB_COLUMNS 에 저장해두기 때문에, 이를 사용하여 다른 테이블의 필드명 및 필드 타입을 알 수 있다.
이러한 인젝션을 막기 위해서 보통은 입력값을 이스케이핑처리(필터처리)하는 방법을 사용한다. 혹은 PreparedStatement를 사용하기도 한다. PreparedStatement와 인젝션 관련 이야기는 TIL에서.
https://bbbbabbbababababa.tistory.com/72#4.-statement-vs-preparedstatement
[Java 풀스택 개발자] JDBC 편 : Java와 DB의 Connection, JDBC
0. 들어가기 전에 반성할 점요즘 스터디와 코테런 등등의 활동으로 TIL을 쓰는 것이 좀 소홀해졌다. 남들이 보기에는 충분히 훌륭하다고 할 수도 있겠지만, 내용을 정리하는 것에 급급한 느낌이
bbbbabbbababababa.tistory.com
참고로 여기서는 오류 메시지를 이용하기도 했는데, 입력값이 맞지 않으면 상세한 오류 내용을 알려줘 근사치를 넣어 정답을 확인하는 게 가능하기 때문이다.
사실 아는 내용이긴 하다(요즘은 이 때문에 서버/호스팅 차원에서 특수문자를 막거나 필터링 시키는 경우도 많다). 매우 기초적인 보안 이야기이기도 하고…
'부트캠프 일지 > Java 풀스택 과정 강의' 카테고리의 다른 글
| [Java 풀스택 과정 강의] 3월 16일 (0) | 2026.03.19 |
|---|---|
| [Java 풀스택 과정 강의] 3월 13일 (0) | 2026.03.14 |
| [Java 풀스택 과정 강의] 3월 11일 (0) | 2026.03.14 |
| [Java 풀스택 과정 강의] 3월 10일 (0) | 2026.03.14 |
| [Java 풀스택 과정 강의] 3월 9일 (0) | 2026.03.09 |