Bobby 테이블:SQL 주입 방지 가이드

0 Comments

Bobby”s school 이 기록을 잃어버린 이유는 무엇입니까?

학교는 분명히 학생이라는 테이블에 학생들의 이름을 저장합니다. 새로운 학생이 도착하면 학교는 그/그녀의 이름을이 테이블에 삽입합니다. 코드고 삽입 다음과 같이 보일 수 있습니다:

첫 번째 라인을 만들 문자열을 포함하는 SQL INSERT statement. $studentName변수의 내용이 SQL 문에 붙어 있습니다., 두 번째 줄은 결과 SQL 문을 데이터베이스로 보냅니다. 이 코드의 함정은 외부 데이터,이 경우$studentName의 내용이 SQL 문의 일부가된다는 것입니다.

먼저”s 무 SQL 문은 다음과 같습니다면 우리는 삽입하는 학생 John.

이것은 정확히 우리가 원하는 것:그것은 삽입 존으로 학생들이다.

이제$studentNameRobert"); DROP TABLE Students;--로 설정하여 작은 바비 테이블을 삽입합니다., SQL 문은 다음과 같습니다.

이것은 Robert 를 Students 테이블에 삽입합니다. 그러나 이제 INSERT 문 다음에 전체 학생 테이블을 제거하는 DROP TABLE 문이옵니다. 아야!

을 방지하는 방법에 바 테이블

만 있을 방지하는 방법 중 하나는 바비 테이블의 공격

  • 를 만들지 않는 SQL 문을 포함한 외부 데이터입니다.
  • 매개 변수화 된 SQL 호출을 사용하십시오.

그”의 그것. 잘못된 문자를 이스케이프하려고하지 마십시오. 돈”t 는 그것을 스스로하려고. 매개 변수화 된 명령문을 사용하는 방법을 배우십시오. 언제나,매번.,스트립이 한 가지 결정적으로 잘못되었습니다. 대답은”데이터베이스 입력을 위생 처리”하는 것이 아닙니다. 오류가 발생하기 쉽습니다.


답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다