다른 "승인 된"도메인에 내 사이트로 다시 연결하고 싶습니다. 링크를 클릭하면 리퍼러 ($ _SERVER [ 'HTTP_REFERRER'])가 내 링크가 승인 된 도메인에서 왔는지 확인하는 페이지로 이동합니다. 이것은 스푸핑 될 수 있으므로 클릭이 실제로 승인 된 도메인에서 오는 것인지 어떻게 확인할 수 있습니까?PHP 리퍼러 : 요청이 실제로 어디에서 왔는지 확인하는 방법
3
A
답변
8
할 수 없습니다. 리퍼러가 조정되는 것을 막을 수는 없습니다.
여러 사이트 간 공동 작업이 가능하면 다른 방법이 가능합니다. 예를 들어, 다른 사이트의 링크를 사용하면 한 번만 사용할 수있는 URL의 매개 변수로 토큰을 전달할 수 있습니다. 그런 다음 유효성을 검사 할 수 있습니다.
몇 가지 유효화 전략이 가능할 것입니다. 귀하의 사이트는 다른 사이트에 연락하여 전달 된 토큰이 유효한지 또는 토큰을 nonce로 사용하는 서명을 사용하여 다른 사이트에 연락하지 않아도되는지 물을 수 있습니다.
관련 문제
- 1. 요청이 iOS의 웹보기 또는 브라우저에서 왔는지 확인하십시오.
- 2. 사용자가 내 사이트로 어디에서 왔는지 확인하는 방법은 무엇입니까?
- 3. PhotoChooserTask : 어디에서 사진이 왔는지 알아
- 4. 리퍼러 확인하기
- 5. HTTP 요청이 BOT인지 확인하는 방법
- 6. Google 애널리틱스에서 404 명이 어디에서 왔는지 추적합니다.
- 7. 도메인 간 요청이 사용되지 않는지 확인하는 방법
- 8. 요청이 완료되면 내 openid.op_endpoint를 확인하는 방법
- 9. MVC2 JSON 요청이 컨트롤러에 실제로 도달하지 않습니다.
- 10. java 서블릿에서 현재 요청이 포함에서 왔는지 어떻게 알 수 있습니까? 서블릿 내에서
- 11. 제공된 파일이 실제로 레지스트리 하이브인지 확인하는 방법
- 12. php header ('Location :')로 리퍼러 설정
- 13. IPN 전화가 PayPal에서 왔는지 확인 하시겠습니까?
- 14. php 어디에서 멀티 듀얼
- 15. PHP 작업 인스턴스를 확인하는 방법
- 16. 값이 PHP 날짜인지 확인하는 방법
- 17. PHP 변수가 참조인지 확인하는 방법?
- 18. 리퍼러 헤더를 사용하여 이미지로드
- 19. HTTP 응답이 의도 된 도메인에서 왔는지 확인하는 스크립트
- 20. 요청이 모바일 또는 컴퓨터에서 나온 것인지 확인하는 방법
- 21. HttpListener를 사용할 때 http 요청이 로컬인지 확인하는 방법
- 22. 리다이렉트 리퍼러 헤더
- 23. 요청이 프록시에서 오는 것인지 확인하는 방법은 무엇입니까?
- 24. Wicket에서 요청이 GET인지 POST인지 확인하는 방법은 무엇입니까?
- 25. 내 서비스 파일에 대한 요청이 내 웹 사이트에서 왔는지 어떻게 안정적으로 확인할 수 있습니까?
- 26. 방문자가 Google AdWords에서 왔는지 파악하는 방법
- 27. 내 DirectoryEntry가 실제로 내 LDAP 디렉토리에 연결되어 있는지 확인하는 방법?
- 28. IIS가 실제로 ASP.Net에 요청을 보내고 있는지 확인하는 방법?
- 29. 내 트랜잭션 방식이 실제로 트랜잭션을 지원하는지 확인하는 방법?
- 30. 실제로 클릭 된 <option>을 확인하는 방법?
사실, 같은 내용을 쓰고있었습니다. 제휴사 등은 일반적으로 쿠키를 앞뒤로 수신 거부하여 유효성을 검사 할 수있는 URL에 매개 변수를 가져오고 어떤 의미가 쉽게 깨질 수 없는지 (URL 및 소금 등을 통한 해시)이를 해결합니다. – Wrikken
서명 생성 및 유효성 검사는 OAuth가 수행하는 것과 유사합니다. OAuth 라이브러리의 코드를 사용하여 확인할 수도 있습니다. 부실 링크의 재사용을 막기 위해 확인할 수있는 URL에 타임 스탬프 매개 변수가 있는지 확인하십시오. 사람들이로드 된 후 잠시 동안 링크를 클릭하는지 확인하거나, 생성 된 URL에 실제로 리다이렉트하여 만료 시간을 훨씬 단축 할 수 있습니다. – Nick
timestamp 기반 nonce를 사용하는 것은 좋은 전략입니다. 왜냐하면 미래에 거부 한 모든 nonce를 저장할 필요가 없기 때문입니다. 예를 들어 보았던 것만 저장할 수 있습니다. 마지막은 3 시간을 말하고 더 오래된 것을 모두 거절합니다. 작은 시간대에 일부 재사용 토큰을 함께 살 수 있다면 전혀 저장할 수 없습니다. – Artefacto