써먹는 웹개발
[SQL] SQL 인젝션 정의 및 공격(방어)방법 본문
728x90
반응형
SQL 인젝션이란?
- 데이터베이스와 연동된 웹 애플리케이션에서 공격자가 입력이 가능한 폼에 조작된 질의문을 삽입하여 웹 서비스의 데이터베이스 정보를 열람 또는 조작할 수 있는 취약점을 말한다.
공격방법
SELECT user FROM user_table WHERE id='admin' AND password=' ' OR '1' = '1'; |
방어방법 : Query String이 아닌 Parameter Binding을 사용하면 된다.
String prepareStatementQuery = "SELECT user FROM user_table WHERE id=? AND password=?"; PreparedStatement preparedStatement = connection.prepareStatement(prepareStatementQuery); preparedStatement.setString( parameterIndex: 1, loginName); preparedStatement.setString( parameterIndex: 2, loginPassword); |
참고자료
728x90
반응형
'웹개발 > Database' 카테고리의 다른 글
[Oracle] 내림차순 정렬을 할때 Null 값을 목록 끝에 나오도록 처리하는 방법 (0) | 2020.08.31 |
---|---|
[Oracle] Decode쓸때 우괄호 에러나는 경우 해결한 방법 (0) | 2020.05.24 |
[Mysql] Could not get JDBC Connection 관련 2가지 에러 해결방법 (0) | 2020.02.11 |
[Mysql] 테이블 생성시 'ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes' 문구가 떴을 때 해결방법 (0) | 2019.12.30 |
[Oracle] SQL 오류 : ORA-01747 : 열명을 올바르게 지정해 주십시오. (0) | 2019.05.29 |
Comments