악의적 호출 방지용 Referer 체크
펌) http://blog.daum.net/blackcatis/10?srchid=BR1http://blog.daum.net/blackcatis/10
사용자가 악의적인 데이터 수정 의도로 폼이 들어있는 html 파일을 저장하고 수정하여
그것을 호출하는 경우가 있습니다. 실제로 폼을 이해한 사용자라면 누구나 시도해 볼만한 방법이 되겠습니다.
이러한 것을 기본적으로 차단해 주는 스크립트 입니다.
$HTTP_HOST 와 $HTTP_REFERER를 체크해 주는 방법입니다.
해당 스크립트는 아래와 같습니다.
if(!eregi($HTTP_HOST,$HTTP_REFERER))
{
echo "<script>alert!(\"올바른 경로로 접근해주세요.\");history.go(-1);</script>";
exit;
}
{
echo "<script>alert!(\"올바른 경로로 접근해주세요.\");history.go(-1);</script>";
exit;
}
추가:
$HTTP_HOST => get_env("HTTP_HOST")
$HTTP_REFERER => getenv("HTTP_REFERER")
로 대체하는 것이 좋습니다.
if(!eregi(getenv("HTTP_HOST"),getenv("HTTP_REFERER")))
{
echo "<script>alert!(\"올바른 경로로 접근해주세요.\");history.go(-1);</script>";
exit;
}
$HTTP_HOST => get_env("HTTP_HOST")
$HTTP_REFERER => getenv("HTTP_REFERER")
로 대체하는 것이 좋습니다.
if(!eregi(getenv("HTTP_HOST"),getenv("HTTP_REFERER")))
{
echo "<script>alert!(\"올바른 경로로 접근해주세요.\");history.go(-1);</script>";
exit;
}
일반적인 저장 방법으로 호출시에 리퍼러체크로 인해 실행되지 않습니다
다만 REFERER 까지 삽입하는 경우에 대해서는 다른 대비가 필요하겠습니다.
하지만 위의 스크립트 만으로도 대부분의 무작위 호출은 방지할 수 있지 않을까 합니다.