>  기사  >  웹 프론트엔드  >  HTTP_REFERER 메소드 요약_javascript 기술을 얻기 위해 주요 브라우저와 완벽하게 호환됩니다.

HTTP_REFERER 메소드 요약_javascript 기술을 얻기 위해 주요 브라우저와 완벽하게 호환됩니다.

WBOY
WBOY원래의
2016-05-16 16:43:151406검색

나중에 몇 가지 관련 정보를 확인한 결과 IE가 window.location.href를 통해 HTTP_REFERER를 얻을 수 없거나 IE의 브라우저를 실제로 이해하지 못하는 것으로 나타났습니다. 많은 브라우저가 매우 좋은 기능을 실행하지만 지원하지 않습니다. 결국 PHP에서 소스 HTTP_REFERER 메소드를 위조하거나 JS를 사용하여 위조하는 것 외에는 방법이 없습니다.

IE가 인식할 수 있는 HTTP_REFERER 제출은 클릭이나 Form 양식에 의해 제출된 요청에 의해 발생하는 이벤트입니다.

<script>
function referURL(url){
var isIe=(document.all)&#63;true:false;
if(isIe) {
var linka = document.createElement(‘a');
linka.href=url;
document.body.appendChild(linka);
linka.click();
}
else window.location = url;
}

var url=”http://www.jb51.net”;
referURL(url);
</script>

이 방법은 먼저 document.all을 사용하여 현재 브라우저가 IE인지 확인하고, 그렇다면 자동으로 onclick 이벤트를 실행하여 점프합니다. 이런 식으로 페이지를 처리할 때 HTTP_REFERER를 얻을 수 있습니다

이 방법은 IE, Firefox, Safari 및 Chrome에서 테스트되었습니다

2. PHP는 컬을 사용하여 IP를 위조하고 HTTP 리퍼러를 소스로 제공합니다

referer.php

<&#63;php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://mydomain.com/ip.php");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8')); //构造IP
curl_setopt($ch, CURLOPT_REFERER, "http://www.jb51.net/ ");  //构造来路
curl_setopt($ch, CURLOPT_HEADER, 1);
$out = curl_exec($ch);
curl_close($ch);

echo $out;

ip.php

<&#63;php
function getClientIp() {
if (!empty($_SERVER["HTTP_CLIENT_IP"]))
$ip = $_SERVER["HTTP_CLIENT_IP"];
else if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if (!empty($_SERVER["REMOTE_ADDR"]))
$ip = $_SERVER["REMOTE_ADDR"];
else
$ip = "err";
return $ip;
}
echo "IP: " . getClientIp() . "<br>";
echo "referer: " . $_SERVER["HTTP_REFERER"];

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.