You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#{name} , ${name} VO에있는 name값이 MyBatis에서 XML에 매핑될 때 getName()으로 값을 가져옴
#{ }
- Parameter가 String 형태로 들어와 자동적으로 'Parameter' 형태가 됨
- ex) VO에 담긴 id 값이 getter로 반환될 때, id 값이 12라면 MyBatis 쿼리에는 id='12'의 형태가 됨
- SQL Injection을 예방할 수 있어 $ { } 보다 보안 측면에서 뛰어남
${ }
- Parameter가 바로 출력된다.
- ex) VO에 담긴 id값이 getter로 반환될 때, id 값이 12라면 MyBatis 쿼리에는 id=12 형태가 됨
- SQL Injection을 예방할 수 없어 보안측면에서 좋지 않음 !!
SQL Injection
- SQL인젝션은 응용 프로그램 보안 상의 허점을 의도적으로 이용해, 악의적인 SQL문을 실행되게 함으로써
데이터베이스를 비정상적으로 조작하는 코드 인젝션 공격방법이다.
${}문법을 사용하면 주로 발생할 수 있는 가장 큰 허점이었으며 이를 막기위해 대부분 #{} 문법을 사용함으로써 대처한다.
MyBatis $ vs # (2)
https://sas-study.tistory.com/96
The text was updated successfully, but these errors were encountered: