PHP - Referans yönlendirme komut

3 Cevap php

Cevaplar ararken sık sık, ben bazı web siteleri referer, örneğin, google.com ise sundukları bilgileri okumak sağlayacak bulduk. Eğer bilgilere doğrudan bağlantı, henüz, o kullanılamaz olacaktır.

Ne arıyorum bu yüzden gibi, benim seçim bir referer, ve bir hedef koyacaktır küçük PHP betik:

http://example.com/ref_red.php?referer=http://google.com/&end=http://example.net/

Notlar:

  • ref_red.php script ismi benim örnek üzerinde.
  • referer ve end kabul etmek gerekir http, https, ftp.
  • referer and end can contain an URI of any type, as simple as http://end.com or as complicated as: http://example.com/some/rr/print.pl?document=rr, for example.

NOTE: bir cevapta üzerinde tavsiye olarak, ben bu ekleme. Komut başına tam bir vekil değildir. Only initial HTTP request would be proxied sole purpose referer ayar için (değil sonraki görüntüler, vb gibi istekleri).

3 Cevap

this function should give you a starting point it will fetch any http url with the specified referrer

Sorgu Parms taşıma oldukça önemsiz olmalı, bu yüzden yapmanız için ben o kısmını terk edecek

<?php

    echo geturl('http://some-url', 'http://referring-url');

    function geturl($url, $referer) { 

        $headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg,text/html,application/xhtml+xml'; 
        $headers[] = 'Connection: Keep-Alive'; 
        $headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8'; 
        $useragent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)'; 

        $process = curl_init($url); 
        curl_setopt($process, CURLOPT_HTTPHEADER, $headers); 
        curl_setopt($process, CURLOPT_HEADER, 0); 
        curl_setopt($process, CURLOPT_USERAGENT, $useragent);
        curl_setopt($process, CURLOPT_REFERER, $referer);
        curl_setopt($process, CURLOPT_TIMEOUT, 30); 
        curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); 

        $return = curl_exec($process); 
        curl_close($process); 

        return $return; 
    } 

?>

Sen (kendi adresini ayarlayarak) yönlendirmeleri gizleme izin internette mevcut hizmetlerinden birini kullanabilirsiniz, ancak gerçek yönlendirme değil, belirli bir yönlendirme empoze edemez. O hedef web sitesine yönlendirilir önce kullanıcı aslında (bir yönlendirme olarak görünecektir) o web sitesine yeniden yönlendirilmesi gerekir.

Bu tür hizmetlerden biri: http://linkanon.com

edit:

Şimdi soru değişti çünkü, bir vekil gibi davranan PHP bir kullanıcı aracısı yazma hakkında benim yorum, uygular, ama düşündüğünüz bir kullanıcı için bir üçüncü taraf web sitesi görüntüleyen olacak, çünkü o zaman bu, bir suç yakın alır Aslında o içerik (size geçti içeriği) yüklenmiş olacak ise o, gerçek web sitesi bulunmaktadır. Bu-yakın suç faaliyeti (eğer bir adım uzakta bir kullanıcı adı ve şifre okumaya çalışıyorum vardır) gerçekleştirmek için, sahte yönlendirme belirtir kendi yazılı kullanıcı ajan kullanarak PHP ile üçüncü tarafın web sitesi içerik yüklemek ve sadece geçer Web sitenizin ziyaretçi çıktı. Bir HTTP başlıklarını göndermenizi sağlar PHP fonksiyonu, başlık (header $) 'dir:

header("Referer: http://example.org");

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html (Bölüm 14.36 bak): Yerine yardım etmeye çalışan insanlar bağırarak, siz Referer başlığına ilişkin şartname (hangi dünya etrafında dönüyor göre protokol bulunuyor) HTTP okumayı deneyebilirsiniz.

Ayrıca http://en.wikipedia.org/wiki/Referrer_spoofing nereye tüm istemci tarafında ilgili olduğunu görebilirsiniz okumak isteyebilirsiniz. PHP sunucu tarafı. Tüm yapabileceğiniz PHP tarafından oluşturulan bir istemci kodu (JavaScript) yazmaya çalışacağım, ama herhangi bir şans varsa, o zaman kullanıcının dünyasına giriyoruz.

Referer değil herhangi bir sunucu tarafı mekanizması tarafından değil, tarayıcınız tarafından ayarlanır. Sen, sanırım, uzak sunucunun isteği yapar ve uygun referer başlığını ayarlar PHP bir proxy inşa olabilir. Bu, örneğin, sadece bir Firefox eklentisi kullanmak daha kullanışlı görünüyor http://www.stardrifter.org/refcontrol/.

Düzenleme: Ben açıkça özel bir yönlendirme başlığı ile, bir PHP vekil yazmak istiyorum yapmak için sorunuzu reword ediyorum. Herhalde sadece http://sourceforge.net/projects/poxy/ yönlendirme parametresi alması gibi bir şey değiştirmek ve onu geçerdi.

Yeniden düzenleme: Sen soruyorsun açık olabilir, ama imkansız soran mümkün yapmaz. Tarayıcı yönlendirme başlığını ayarlamak için sorumludur; onu yeni bir kaynağa yönlendirmek neden URI kullanır. Siz "http://example.net ziyaret, ama bunu yaparken aslında www.foo.com olduğumu iddia lütfen" diyor bir komut dosyası için soruyorsun. O nereden geldiğini "yalan" için tarayıcı talimat sunucu için bir mekanizma yoktur.

Ben bazı dolambaçlı JavaScript korsanlığı yoluyla mümkün olabilir varsayalım, ancak siyah şapka anlamda hack olacak - yönlendirme parodi bir tarayıcı zorlamak mümkün olan bir web sitesi gerçek bir güvenlik delik olacaktır.