티스토리 뷰

STUDY/PHP

[PHP] 입력 보안 처리

하이바네.P 2012. 3. 30. 02:53

폼의 입력 형식과 크기를 제한하는 것과는 상관없이 공격자는 폼 정보를 소스보기 등으로 확인한 뒤 변조하여 입력하는 경우가 종종 있다. 

사용자 입력을 읽을 때 다음과 같은 코드는 사용하지 않길 권장한다.

$값 = $_POST['input'];


그래서 입력 값을 처리할 수 있는 함수를 이용한다.

mysql 로 표현될 문자열에 삽입되는 이스케이프 문자 방지.

$값 = mysql_real_escape_string($값)


원하지 않은 슬래시(/)를 지우려면 다음과 같은 함수를 이용한다.

$값 = stripslashes($값);


모든 문자들을 HTML 엔티티로 변환한다.

$값 = htmlentities($값);


문자열에서 php, html 태그를 제거한다.

$갑 = strip_tags($variable);


그래서 보안레벨을 체크하는 함수가 만들어질 수 있다.

function sanitizeString($var)

{

$var = stripslashes($var);

$var = htmlentities($var);

$var = strip_tags($var);

return $var;

}

function htmlString($var)

{

$var = mysql_real_escape_string($var);

$var = sanitizeString($var);

return  $value;

}