magic_quotes_gpc 설정
magic_quotes_gpc 설정
php.ini 파일에서 magic_quotes_gpc 설정이 true 인경우 GET, POST, COOKIE 에 ', ", \ 가 있으면 \(역슬래시) 자동추가된다.
SQL Injection 공격실습을 위해서는 C드라이브 - php.ini파일 - magic_quotes_gpc 설정을 Off로 해주어 특수문자 사용이 가능하게 해준다.
php코딩시 변수에 ' , " 등이 있을경우에 대해서 글을 쓴적이 있다.
위와같은 입력이 허용되면 SQL 인젝션 공격에 취약해지기 때문에 addslashes()를 해줘야한다.
그러면 특수문자 앞에 \(역슬러시)가 붙기 때문에 입력값으로 인젝션 공격에 사용되는 특수문자가 들어왔을 때 이 특수문자를 일반문자열로 처리하여 SQL 인젝션을 방어할 수 있게 된다.
그리고 데이터를 불러온후 표현할때는 stripslashes를 사용하여 특수문자 앞에 붙은 \ 를 제거하고 원래 데이터를 표현한다.
사용자의 데이터 입력값에 쿼리를 조작하기 위한 ' 등이 있을경우 이를 \ 처리 해주므로 안전하게 된다.
get_magic_quotes_gpc()는 magic_quotes_gpc의 설정값을 반환한다.
<사용 예>
1. DB에 저장시 해당 문자에 \(역슬래시) 추가
$_POST['text'] = addslashes($_POST['text']);
2. 화면에 출력시 추가된 \(역슬래시) 제거
$_POST['text'] = stripslashes($_POST['text']);
3. magic_quotes_gpc 설정에 따른 방법
php.ini 파일에서 magic_quotes_gpc 설정이 true 인경우 GET, POST, COOKIE 에 ', ", \ 가 있으면 \(역슬래시) 자동추가
magic_quotes_gpc 설정값 true, false 확인하여 처리
if (!get_magic_quotes_gpc())
{
// false이면 \ 추가
$_POST['text'] = addslashes($_POST['text']);
}
else
{
// true이면 \ 제거
$_POST['text'] = stripslashes($_POST['text']);
}
출처 :
blog.naver.com/soul7992/221708477422
'Web Programming Language > PHP' 카테고리의 다른 글
PHP) move_uploaded_file() 함수 (0) | 2020.11.03 |
---|---|
PHP) 슈퍼전역 변수 $_FILES (0) | 2020.11.03 |
PHP) 세션 삭제 session_destroy( ) 함수 (0) | 2020.10.27 |
PHP) session_start( ) 함수 (0) | 2020.10.27 |
PHP) 다른 페이지로 리다이렉션하기 (0) | 2020.10.27 |
댓글