본문 바로가기

기타

[QnA] PHP URL 필터링함수를 알려주세요.

반응형

 

  PHP URL 필터링함수를 알려주세요.


 

GET방식으로 게시물 번호 식별값을 URL을 통해 전송해서 해당 게시물을 가져오는 구조인데요.

예를들어 28번 째 게시물을 가져오고싶다고하면

 

http://aaa.co.kr/index.php?bidx=28 이런식으로 URL을 통해 값을 전송해서 게시물을 불러옵니다.

 

그런데 문제는 저 bidx 값(28) 뒤에 

아무값이나 붙여서 보내면 쿼리오류가 발생합니다.  

http://aaa.co.kr/index.php?bidx=28+-@  처럼요.

 

사용자가 URL에 의도적으로 입력한 값만을 모두 필터링처리하는 

PHP 보안함수가 어떤것이 있나요?

 

 

 

 

게시판 번호로 접근을 한다고 했으므로
 
$bidx = (int) $_GET['bidx']; 처럼 강제로 int 형으로 변환해서
공격을 하기 어렵게 만들 수 있습니다.
 
참고로 $_GET['bidx']의 값이 int형으로 변환이 불가능할 때는 0이라는 값이 됩니다.
 
아니면 아래처럼 숫자형태의 입력이 아닐 경우에는 ERROR라는 메시지를 띄우게 할 수 있습니다.
 
if(!preg_match('/^[0-9]*$/', $_GET['bidx'])) exit("ERROR");

 

반응형