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 에 대한 설명의 메뉴얼 입니다.
답변을 작성하시기 전에 로그인 해주세요.