ต่อมาฉันตรวจสอบข้อมูลที่เกี่ยวข้องและพบว่าเป็นไปไม่ได้ที่จะได้รับ http_referer ใน IE ผ่าน window.location.href หรือใน IE ฉันไม่เข้าใจคือเบราว์เซอร์ เบราว์เซอร์จำนวนมากทำงานได้ดีมาก แต่พวกเขาไม่สนับสนุนพวกเขา ในที่สุดก็ไม่มีทาง ฉันสามารถปลอมเมธอด http_referer หรือใช้ JS เพื่อปลอมแปลงได้เท่านั้น
การส่ง http_referer ที่ IE สามารถรับรู้ได้คือเหตุการณ์ที่เกิดขึ้นจากการคลิกหรือคำขอที่ส่งโดยแบบฟอร์ม ต่อไปนี้เป็นวิธีการสรุปตามข้อมูลออนไลน์:
<script> ฟังก์ชั่นอ้างอิง (url) {var isie = (document.all)? true: false; ถ้า (isie) {var linka = document.createElement ('a'); linka.href = url; document.body.appendchild (linka); linka.click (); url =” // www.vevb.com”; referurl (url); </script>วิธีนี้ใช้เอกสารก่อนอื่นเพื่อตรวจสอบว่าเบราว์เซอร์ปัจจุบันคือเช่น ถ้าเป็นเช่นนั้นให้สร้างลิงก์แล้วเรียกใช้งานเหตุการณ์ OnClick โดยอัตโนมัติ ถ้าไม่ใช้ JS เพื่อกระโดด ด้วยวิธีนี้คุณจะได้รับ http_referer เมื่อประมวลผลหน้าเว็บ
วิธีนี้ได้รับการทดสอบใน IE, Firefox, Safari, Chrome
2. PHP ใช้ Curl เพื่อปลอม IP และ Origin HTTP referrer
reforber.php
<? php $ ch = curl_init (); curl_setopt ($ ch, curlopt_url, "http://mydomain.com/ip.php"); // สร้าง ipcurl_setopt ($ ch, curlopt_referer, "//www.vevb.com/"); // สร้างแหล่งกำเนิด curl_setopt ($ ch, curlopt_header, 1); $ out = curl_exec ($ ch); curl_close ($ ch); echo $ out;
ip.php
<? phpfunction getClientip () {ถ้า (! ว่าง ($ _ เซิร์ฟเวอร์ ["http_client_ip"])) $ ip = $ _server ["http_client_ip"]; อื่น ๆ ถ้า (! ว่าง ($ _ เซิร์ฟเวอร์ ["http_x_forwarded_for" (! ว่างเปล่า ($ _ เซิร์ฟเวอร์ ["remote_addr"])) $ ip = $ _server ["remote_addr"]; else $ ip = "err"; return $ ip;} echo "ip:" getClientip () "<br>"; echo "ผู้อ้างอิง:" $ _Server ["http_referer"];