2012-04-02 7 views
0

사용자가 내 서버에 ajax 요청을 보낸 전체 도메인을 가져와야하며 다소 안전해야합니다. Php, ajax 요청으로부터 리퍼러를 받으십시오.

$_SERVER['HTTP_REFERER'] 

빈칸을 반환합니다. 어떤 기능을 사용해야합니까? 미리 감사드립니다.

+0

검은 색이 아닐 수도 있습니다. –

+1

@AlexAmiryan,이 문제에 대한 해결책을 알고 있습니까? – funerr

답변

4

일부 브라우저는 XHR 요청과 함께 리퍼러 데이터를 보내지 않습니다. 리퍼러 헤더는 선택 사항이며 어쨌든 위조 될 수 있습니다. 그래서 : 당신은 수 없습니다.

Same Origin Policy은 필요한 모든 보호 기능을 제공 할 가능성이 있습니다 (사용법에 대해 명시하지 않았으므로 확실하게 말하기는 어렵습니다).

+0

ajax 요청은 작동하지만 (나는 PHP를 통해 구성했다.) 원격 도메인을 얻지 못한다. – funerr

+0

$ _SERVER [ "HTTP_REFERER"]은 (는) 신뢰할 수있는 값이 아닙니다. 이 값은 사용자가 좋아하는 것으로 설정할 수 있습니다. 또한 사용자는 수동으로 referer를 비활성화 할 수 있습니다. referer없이 스크립트를 재 작업 해보십시오. 그러나, referer의 가치에 의존하지 마십시오. – TRD

+0

@TRD 그럼 무엇을 사용해야합니까? – funerr

1

귀하의 목표는 승인되지 않은/과도한 요청으로 서버 API가 히트/스팸되지 않도록 보호하는 것 같습니다. 검사하려는 모든 것을 스푸핑 할 수있는 상황에서는 작업 증명 알고리즘을 대신 사용해 볼 수 있습니다.

처리 할 당신에게 데이터를 전송하기위한 (계산주기와 함께) "지불"하는 클라이언트를 강제로 http://hashcash.org

에서보세요, 당신은 당신에게 문제를 일으키는에서 일반적으로 봇을 필터링 할 수 있습니다.

관련 문제