2012-04-18 6 views
0

내 도메인에서 오는 요청 만 처리하도록 게시 요청을 제한하려는 경우 $ _SERVER [ 'HTTP_REFERER']를 사용하는 것보다 referer를 다른 방법으로 확인하려면 어떻게해야합니까 ($_SERVER documentation). 믿을 수 없습니까?실제 리퍼러를 얻는 방법?

+0

자신의 도메인에서 온 페이지에 남아있는 페이지의 ID가있는 쿠키를 업데이트하십시오. 페이지로드시 쿠키의 값을 확인하십시오. 어쩌면 당신은 그것을 현재 세션에 묶어야 할 것입니다. –

답변

2

이것은 가능하지 않습니다. 참조 정보를 확인하는 유일한 방법은 브라우저가이 정보를 제공 한 경우입니다.이 정보는 분명히 독자에게 도움이 될 수 있습니다.

그러나 사용자가 사이트를 방문했음을 보여주는 변수를 저장하는 쿠키 또는 쿠키를 만들 수 있습니다. 그런 다음 해당 세션 변수가 정의 된 경우에만 사용자가 게시물을 볼 수 있도록 허용 할 수 있습니다.

또 다른 옵션은 사용자 IP 주소를 기반으로 링크를 생성하고 특별히 생성 된 링크를 클릭 한 경우에만 액세스 권한을 부여하는 것입니다. 먼저 사용자 IP 주소와 고유 키를 데이터베이스에 저장 한 다음 모든 내부 링크가 고유 ID가있는 GET 변수를 사용할 수 있습니다. 정품 ID없이 페이지를 열면 오류 메시지가 표시 될 수 있습니다.

1

도메인에서 오는 경우 쿠키를 설정하거나 세션 변수를 사용하여 사용자가 웹 사이트에있는 것으로 표시 할 수 있습니다. 그런 다음 제출이 전송되고 사용자가 확인 값이 부족하다면이를 거부 할 수 있습니다 (또는 존재할 경우).

1

덧붙여 Cameron's answer :
cross-site request forgeries을 방지하는 메커니즘을 사용할 수도 있습니다. 나는. 사용자가 사이트를 방문했음을 나타내는 세션 변수를 설정하는 것이 아니라 세션 데이터의 값과 일치해야하는 양식에 키를 추가하는 것입니다. 일부 프레임 워크는이를 지원합니다. Zend_Form_Element_Hash

관련 문제