Escape string (이스케이프) 이란?
안녕하세요. 왕발입니닷 >_<
오늘 이야기할 포스팅 주제는 Escape string (이스케이프)에 대해서입니다.
이스케이프(escape) 문자란? (PHP에서...)
\를 앞에 붙여 php에 정의되어 있는 원래의 이미를 벗어나는(escape) 문자들을 이스케이프(escape) 문자라고 합니다.
\" : 겹따옴표 자체를 출력하고 싶을때
\' : 홑따옴표 자체를 출력하고 싶을때
\\ : 역슬래시 자체를 출력하고 싶을때
\n : 한줄 띄는 기능 (new line)
\r : 엔터 기능 (carrage return)
\t : 탭키 기능 (tab)
\$ : $ 문자 자체를 출력하고 싶을때
등이 있습니다.
각 \ 뒤에 붙은 것들은 기능을 담고 있습니다.
하지만, PHP에서는 표현하기가 어렵습니다.
예를 들면, echo "철수가 일어나 말했다. "안녕하세요." "; 같은 방법에서
겹따옴표 자체를 표현할 수가 없습니다.
이때 해결 방법이
echo "철수가 일어나 말했다. \"안녕하세요.\" ";
방법입니다. " 홑따옴표 앞에 \ 역슬래시를 추가로 넣어주면,
정상적으로 홑따옴표가 제 기능을 상실하고 출력됩니다.
이런 이스케이프 문자를 이용하여, PHP 인젝션을 하는 경우가 많습니다.
그래서 항상 코딩하실때에는 이스케이프 문자를 주의하여 코딩하셔야 합니다.
무슨 뜻인가..? 바로, \ ' = 등을 통해서 정상적인 input 란에 \ ' = 를 통해서
값을 넣으면, 쿼리 입력시에 \ ' = 에 의해서 설정해둔 쿼리가 바뀌어 적용되기 때문입니다.
또한 데이터 값을 넣을때에도 '는 주의해야합니다. 그 이유는 값을 출력시에 또한 (')로 인하여 에러가 발생하기 때문입니다.
그래서 꼭, 데이터 값을 넣는 부분에는 항상
addslashes() 처리를 해주셔야 합니다.
' 부분 앞에 \처리하여 넣어주는 역할을 합니다.
[ 예제 ]
<?php
$str = "Is your name O'reilly?";
// 출력: Is your name O\'reilly?
echo addslashes($str);
?>
앞으로 코딩하실때에는 이스케이프 문자 등에 대해서 유의하며 코딩하시기 바랍니다.
감사합니다.
'IT.' 카테고리의 다른 글
서피스 프로4 M3 구매 리뷰 (1) | 2016.05.10 |
---|---|
오토캐드 리습(LISP) (0) | 2016.05.06 |
robots.txt 를 알아보자 (0) | 2016.05.06 |