306. 문자열 대체 (String substitution)

2012. 5. 29. 16:43공부/MYBATIS

기본적으로 #{} 문법을 사용함으로써, 마이바티스가 PreparedStatement 속성을 생성하고, PerparedStatement의 각강의 파라미터에 대응한 값을 안전하게 세팅해. 이 방법은 안전하고, 빠르고 거의 언제나 선호되는 방법이지만, 때때로 SQL 구문으로 변경되지 않은 무자열을 직접 주입하고 싶을 수도 있지. 예를 들면, ORDER BY 같은 경우, 다음과 같이 사용할 수도 있어.


ORDER BY ${columnName}

여기서 마이바티스는 문자열을 수정하거나 회피하지 않아.

NOTE 사용자로부터 입력을 받아들이고, 위 방법으로 변경되지 않은 입력을 구문에 제공하는 것은 안전하지 않아. 이는 잠재적인 SQL 주입 공격에 노출되기 때문에 이러한 필드에 사용자 입력을 허용하지 않거나, 항상 그것을 너의 방법으로 처리하거나 체크해야 해.