mybatis #{}와 ${}의 차이

2024. 6. 17. 09:54IT 개발 관련(Java, Spring, JavaScript)

#{} 로 입력값을 받게 되었을때는 '' 가 자동삽입된다. 

 

${}로 입력받게 되었을때는 입력받는 그대로 삽입된다.

 

예시 )

 

출처 : https://koonsland.tistory.com/139

 

 

${}를 어쩔 수 없이 입력받아야 하는 경우는 SQL Injection 방어에도 신경을 써야한다.

 

먼저 SQL Injection이란.

 

즉 mybatis ${}를 쓰면, 입력받는데로 쿼리문이 실행되기 때문에, 이에 대한 방어가 필요하다.

 

사진 출처 : https://noirstar.tistory.com/264

 

 

그래서 SQL Injection을 방어하기 위해서는 

https://github.com/rkpunjal/sql-injection-safe/ 라이브러리를 사용할 수 있다. 이에 대한 내용은 

 

아래 링크에서 확인가능하다.

https://yjh5369.tistory.com/entry/spring-boot%EC%97%90%EC%84%9C-mybatis-%EC%82%AC%EC%9A%A9%EC%8B%9C-sql-injection-%EB%B0%A9%EC%96%B4%ED%95%98%EA%B8%B0

'IT 개발 관련(Java, Spring, JavaScript)' 카테고리의 다른 글

input 사용자 정의 데이터 속성 추가  (0) 2024.06.17
InteliJ 깃 브랜치 커밋 내용 원복  (0) 2024.06.17
ServletContext 메소드  (0) 2024.06.16
CSRF 토큰  (0) 2024.06.14
Tiles  (0) 2024.06.14