DB/SQL

SQL INJECTION

도어누들 2022. 12. 27. 17:17

SQL INJECTION

 

SQL 인젝션은 데이터베이스를 파괴할 수 있는 코드 삽입 기술입니다.

SQL 인젝션은 가장 일반적인 웹 해킹 기술 중 하나입니다.

SQL 인젝션은 웹 페이지 입력을 통해 SQL 문에 악성 코드를 배치하는 것입니다.

 

 

웹 페이지의 SQL

SQL 인젝션은 일반적으로 사용자에게 사용자 이름/사용자 ID와 같은 입력을 요청할 때 발생하며

사용자는 이름/ID 대신 자신도 모르게 데이터베이스에서 실행할 SQL 문을 제공합니다.

 

SELECT선택 문자열에 변수(txtUserId)를 추가하여 명령문을 생성하는 다음 예를 살펴보십시오. 

변수는 사용자 입력(getRequestString)에서 가져옵니다.

 

 

나머지 부분에서는 SQL 문에서 사용자 입력을 사용할 때의 잠재적인 위험에 대해 설명합니다.

 

SQL 쿼리문 작성시 주의사항

 

 

1=1을 기반으로 한 SQL 주입은 항상 True입니다.

 

""="" 기반 SQL 주입은 항상 True입니다.

 

일괄 처리된 SQL 문을 기반으로 한 SQL 주입(조건절을 기입하는것이 좋다.)

일괄 처리된 SQL 문을 기반으로 한 SQL 주입

 

 

보호를 위해 SQL 매개변수 사용

 

SQL 인젝션으로부터 웹 사이트를 보호하기 위해 SQL 매개변수를 사용할 수 있습니다.

SQL 매개변수는 제어된 방식으로 실행 시 SQL 쿼리에 추가되는 값입니다.

매개변수는 SQL 문에서 @ 표시로 표시됩니다.

SQL 엔진은 각 매개변수가 열에 맞는지 확인하고

실행될 SQL의 일부가 아닌 문자 그대로 처리되는지 확인합니다.