> 데이터 베이스 > MySQL 튜토리얼 > 웹 보안에서 SQL 주입을 방지하는 방법

웹 보안에서 SQL 주입을 방지하는 방법

little bottle
풀어 주다: 2019-04-29 13:31:16
앞으로
3238명이 탐색했습니다.

SQL 주입은 웹 양식에 SQL 명령을 삽입하여 페이지 요청에 대한 도메인 이름이나 쿼리 문자열을 제출하거나 입력하고 궁극적으로 서버를 속여 악성 SQL 명령을 실행하도록 하는 것입니다. 예를 들어 이전의 많은 영화 및 TV 웹사이트에서 VIP 회원이 유출되었습니다. 비밀번호는 주로 WEB 양식을 통해 제출된 쿼리 문자가 노출되며 이러한 유형의 양식은 특히 SQL 삽입 공격에 취약합니다.

SQL 주입 원리

SQL 주입 공격은 애플리케이션이 입력 콘텐츠를 사용하여 데이터베이스에 액세스하기 위한 동적 SQL 문을 구성할 때 발생합니다. 필터링되지 않은 사용자 입력이 포함된 문자열로 전달되는 저장 프로시저를 코드에서 사용하는 경우에도 SQL 주입이 발생할 수 있습니다.

SQL 주입을 통해 공격자는 애플리케이션 로그인을 사용하여 데이터베이스에서 명령을 실행할 수 있습니다. 응용 프로그램이 권한이 과도한 계정을 사용하여 데이터베이스에 연결하는 경우 이 문제가 심각해질 수 있습니다. 일부 형식에서는 사용자가 입력한 내용이 동적 SQL 명령을 구성하는 데 직접 사용되거나 저장 프로시저의 입력 매개 변수로 사용됩니다. 이러한 형식은 특히 SQL 주입 공격에 취약합니다. 많은 웹사이트 프로그램을 작성할 때 사용자 입력의 적법성이 판단되지 않거나 프로그램 내 변수가 제대로 처리되지 않아 애플리케이션의 보안 위험이 발생합니다. 이런 방식으로 사용자는 데이터베이스 쿼리 코드를 제출하고 프로그램에서 반환된 결과를 기반으로 일부 민감한 정보를 얻거나 전체 서버를 제어할 수 있으므로 SQL 주입이 발생합니다.

SQL 주입을 방지하는 방법?

  1. 사용자 입력을 절대 신뢰하지 마세요. 사용자의 입력을 확인하려면 정규식을 사용하거나 길이를 제한한 다음 작은따옴표 및 큰따옴표 "-"와 같은 민감한 기호를 변환할 수 있습니다.
  2. SQL의 동적 어셈블리를 사용하지 마세요. 매개변수화된 SQL을 사용하거나 데이터 쿼리 및 액세스에 저장 프로시저를 직접 사용할 수 있습니다.
  3. 관리자 권한으로 데이터베이스 연결을 사용하지 마세요. 각 애플리케이션에 대해 제한된 권한이 있는 별도의 데이터베이스 연결을 사용하세요.
  4. 기밀 정보를 직접 저장하지 말고, 비밀번호와 민감한 정보를 암호화하거나 해시하지 마세요.
  5. 응용 프로그램의 예외 정보는 가능한 한 적은 힌트를 제공해야 합니다. 사용자 정의 오류 정보를 사용하여 원래 오류 정보를 래핑하는 것이 가장 좋습니다.

관련 튜토리얼: SQL 비디오 튜토리얼

위 내용은 웹 보안에서 SQL 주입을 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿