sql injection

sql injection

QA

sql injection

본문

sql injection 은 어떻게막을까요?

 

라이브러리에다가 sql injection 막는거 몇개함수넣어놓고

 

insert 나 update delete select 모두 sql injection 방어를 어떻게할까요?..

 

mysqlq 연결할떄도여..

이 질문에 댓글 쓰기 :

답변 2

인젝션은 보통 전달받는 변수에서 발생되기때문에

 

변수를 이스케이프처리만 해줘도 어느정도는 막을수 있고

 

SQL에 대입하는 부분이 숫자형이면 대입전 변수하나 정의해서 전달받은 변수를

숫자형으로 변환하는 식을 기술하시는것이 보다 안전성에 있어 좋습니다.

 

문자형일경우 이스케이프처리 (addslashes() 사용)을 해주어 SQL내부의 예약어들이 실행되지 못하도록

막아주는것이 중요합니다.

 

예시를 들기에는 너무 막대하므로 이부분이 이해가 되지 않으시면 phpschool.com 등에서

SQL 인젝션에 관하여 검색해보면 보다 많은 내용을 알아보실수 있습니다. 

우선 모든 필드에 들어가는 데이터 값을 바로 매칭시키지 않는게 중요합니다.

 

예를 들어 

 

SELECT * FROM `TABLE` WHERE ID = ?

식으로 처리하고 ? 에 들어갈 데이터를 추후에 매칭하는 것이지요.

 

종전의 PHP 에서 mysql 연결 방식은 취약합니다.

PDO 나 bindParam 이 적용되는 라이브러리를 쓰는게 좋지요.

아래는 PDO 관련 bind parameter 에 대한 설명의 메뉴얼 입니다.

 

http://php.net/manual/kr/pdostatement.bindparam.php 

답변을 작성하시기 전에 로그인 해주세요.
전체 8
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT