써먹는 웹개발

[SQL] SQL 인젝션 정의 및 공격(방어)방법 본문

웹개발/Database

[SQL] SQL 인젝션 정의 및 공격(방어)방법

kmhan 2020. 5. 2. 23:37


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); 

참고자료

https://namu.wiki/w/SQL%20injection

https://www.youtube.com/watch?v=qzas_-u4Nxk

728x90
반응형


Comments