sql 주입 공격 과 django 어떻게 sql 주입 방지
1520 단어 파 이 썬 프레임 워 크
SQL 주입 공격 은 해커 가 데이터 베 이 스 를 공격 하 는 데 자주 사용 되 는 수단 중 하나 이다.B / S 모델 응용 개발 이 발전 함 에 따라 이런 모델 로 응용 프로그램 을 작성 하 는 프로그래머 도 점점 많아 지고 있다.그러나 프로그래머 의 수준 과 경험 도 들쭉날쭉 하기 때문에 상당 한 프로그래머 들 이 코드 를 작성 할 때 사용자 가 입력 한 데이터 의 합 법성 을 판단 하지 않 아 프로그램 에 안전 위험 이 존재 합 니 다.사용 자 는 데이터베이스 조회 코드 를 제출 하여 프로그램 이 돌아 온 결과 에 따라 그 가 알 고 싶 은 데 이 터 를 얻 을 수 있 습 니 다. 이것 이 바로 SQL Injection, 즉 SQL 주입 입 니 다.
SQL 주입 공격 은 데이터 베이스 안전 공격 수단 중 하나 로 데이터 베이스 안전 보호 기술 을 통 해 효과 적 인 보 호 를 실현 할 수 있다. 데이터 베이스 안전 보호 기술 은 데이터 베이스 누 출, 데이터 베이스 암호 화, 데이터 베이스 방화벽, 데이터 탈 민, 데이터 베이스 안전 감사 시스템 을 포함한다.
SQL 주입 공격 으로 인 한 데이터베이스 안전 위험 은 라 이브 러 리, 라 이브 러 리, 라 이브 러 리 충돌 을 포함한다.
Django 에서 SQL 주입 을 방지 하 는 방법
프로젝트 1 은 항상 Django 가 가지 고 있 는 데이터베이스 API 를 사용 합 니 다.이것 은 당신 이 사용 하 는 데이터베이스 서버 (예 를 들 어 PostSQL 또는 MySQL) 의 변환 규칙 에 따라 특수 한 SQL 파 라미 터 를 자동 으로 변환 합 니 다.이것 은 전체 Django 데이터베이스 API 에 사 용 됩 니 다. 예외 만 있 습 니 다. extra () 방법 에 전 달 된 where 매개 변수 입 니 다.(부록 C 참조) 이 매개 변 수 는 원본 SQL 을 받 아들 일 수 있 도록 의도 적 으로 설계 되 었 습 니 다.바 텀 데이터베이스 API 를 사용 한 조회.
프로젝트 2 아래 Python 코드 보기:
from django.db import connection
def user_contacts(request):
user = request.GET['username']
sql = "SELECT * FROM user_contacts WHERE username = %s"
cursor = connection.cursor()
cursor.execute(sql, [user])
# ... do something with the results
cursor. execute () 의 SQL 문장 에 '% s' 를 사용 하고 SQL 에 인 자 를 직접 추가 하지 않도록 주의 하 십시오.이 기술 을 사용 하면 데이터베이스 기초 라 이브 러 리 에 따옴표 가 자동 으로 추가 되 고 필요 한 상황 에서 파 라 메 터 를 바 꿀 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
sql 주입 공격 과 django 어떻게 sql 주입 방지SQL 주입 공격 은 해커 가 데이터 베 이 스 를 공격 하 는 데 자주 사용 되 는 수단 중 하나 이다.B / S 모델 응용 개발 이 발전 함 에 따라 이런 모델 로 응용 프로그램 을 작성 하 는 프로그래머 도 점...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.