2011-02-04 7 views
0

PHP를 지원하지 않는 서버에 정적 폼이 있습니다 :어떻게 PHP에서 하나의 IP를 제외하고 스크립트에 대한 액세스를 방지하려면?

<form action="http://otherserver.com/process_form.php" 

서버의 정적 IP로 요청을 보내고있는 경우에만 process_form.php 파일에서 스크립트가 필요합니다. 정적 양식이 호스팅됩니다. 이 작업을 수행하는 방법?

다른 사람이 그 ip가 스크립트를 요청하려고 시도하면 스크립트는 즉시 죽어야합니다.

답변

4

IP가 클라이언트의 IP이기 때문에 원하는 방식으로 작동하지 않으며 양식이 호스트 된 서버가 아닙니다.

당신은

$_SERVER["HTTP_REFERER"] 

헤더 변수를 테스트하기 위해 찾고 있습니다. 그러면 원래 양식이 호스팅 된 페이지 ()를 알 수 있지만 안전하지 않습니다.이 헤더는 클라이언트가 설정하며 자유롭게 조작 할 수 있습니다.

1

Pekka가 지적했듯이 HTTP 리퍼러는 쉽게 스푸핑 될 수 있습니다. 보안 관점에서 보면 아무 것도 해결되지 않습니다.

일부 클라이언트 및 브라우저 플러그인은 referer를 빈 문자열로 설정합니다. 여전히 양식에 액세스 할 수 있는지 확인하십시오.

관련 문제