sql 인젝션 방지코드 설명
본문
sql 인젝션을 방지하려면 addslashes( ) 함수가 이용되는데, 백슬래쉬를 추가하여 sql 인젝션을 어떻게 방지하는건지요.. 어딜 가도 설명이 안 되어있어서 여기에 여쭤봅니다.
감사합니다
답변 2
해커가 SELECT full_name AND password WHERE user_name='bla' OR '1'='1' 이렇게 수정을 하는 것이 아니라
user_name 과 password를 입력받아서 쿼리를 만들때 문제가 생길 수 잇다는 겁니다
쿼리가 아래와 같다고 하면
SELECT full_name AND password WHERE user_name='$user_name' and password='$pass'
예를들어 해커가 form의 user_name 입력칸에 bla' or '1=1' -- ' 라고 입력한 것을 그대로 사용하면
SELECT full_name AND password WHERE user_name='bla' or '1=1' -- '' and password='1234'
이런 형태의 쿼리가 되어 아주 자알 쿼리를 실행하게 됩니다
addslashes($user_name)을 하게되면 위와 같은 정상적인 쿼리문이 만들어지지 않게 된다는 겁니다
WHERE user_name='bla\' OR \'1=1\' -- \'' 이렇게 될테니까요
답변을 작성하시기 전에 로그인 해주세요.