2011-02-17 22 views
34

Giden bağlantıların yönlendiren göndermesini istemediğim bir sayfa var, bu nedenle hedef site nereden geldiğini bilmiyor.Yönlendirenin hedefe yönlendirilmesinden sonra gelen bağlantıyı durdurun

Bunun mümkün olmadığını tahmin ediyorum, ancak bunu yapabilecek herhangi bir gizli javascript sihirbazının olmadığından emin olmak istiyorum. Bu, bazı tarayıcılarla çalışabilir.

Belki bazı akıllı HTTP durum kodu kung-fu yönlendiriliyor? Böyle

şey sadece aynı şeyi arıyordu

<a href="example.com" send_referrer="false">link</a> 

cevap

4

Ben de bunu anlamaya çalışıyordum.

Düşündüğüm çözüm, geldiğim sayfayı gizlemek için bir veri URL'si kullanmaktı.

<a href='data:text/html;charset=utf-8, <html><script>window.location = "http://google.ca";</script></html>'>Link</a> 

Bu bağlantı, farklı bir sayfayı yüklemek için yalnızca javascript içeren bir sayfa açar. Testimde son hedefe yönlendiren yok. Yine de denediğinde bir yönlendirici olarak ne gönderebileceğini bilmiyorum, belki de veri url? Geldiğin yerden uzaklaşmazdı.

Bu, Chrome'da çalışır. Chrome şu andaki sorunum için tek endişem, ancak veri URL'leri olan sayfalarda javascript'i beğenmeyen tarayıcılar. Muhtemelen bir meta yenilemeyi deneyebilirsiniz.

+0

Kromda çalışır. Firefox'ta maalesef yok. – zaius

8

Bigmack doğru yolda, ancak bir javascript konumu değişikliği hala firefox'ta bir yönlendiren gönderir. Bir meta yenileme kullanmak benim için problemi çözüyor gibi görünüyor.

<a href='data:text/html;charset=utf-8, <html><meta http-equiv="refresh" content="0;URL=&#39;http://google.com/&#39;"></html>'>Link</a> 
+0

Google'ın gmail'deki bağlantılar için yaptıklarının bu olduğuna inanıyorum - bağlantıyı tıklar ve tıklattığınız orijinal bağlantıya meta yenileme ile boş bir google izleme sayfasına gidin. – wezell

25

HTML 5 supported in all major browsers olan rel="noreferrer" içerir. Yani bu tarayıcılar için, sadece yazabilirsiniz:

<a href="example.com" rel="noreferrer">link</a> 

da diğer tarayıcılar için kullanılabilir bir dolgu var: https://github.com/knu/noreferrer

+4

Heads up Bu shim, kullanımdan kaldırılan $ .browser'a bağlı. –

34

gibi yönlendiren kıran hizmetini kullanabilirsiniz 2015 ve sonrasında, artık destek kazanma konusunda uygun bir çözüm var.

HTTP Referrer Policy Spec kontrol etmenizi sağlar yönlendiren gönderme bağlantıları ve subresources (resimler, komut dosyaları, stil, vb) ve şu anda, bu Firefox, Chrome ve Opera üzerinde supported var için.

<meta name="referrer" content="no-referrer"> 

(Ve spec eski bir sürümü Microsoft Edge ve Safari tarafından desteklenir, ancak henüz her şey yeni sözdizimi beslerken onlara eski sözdizimi beslemek için bir test çalışan bir yol bulamadı.Eğer audio, img, link, script ve unutma, CORS'yi gerektiren kaynakları referans video etiketleri uygulamak istiyorsanız)

Ayrıca

, ayrıca onlara crossorigin="anonymous" niteliğini belirlemek için yani sadece mutlak minimum (Origin başlık) paylaşılacak. Zaten bilgilere ek olarak

(uzaktan siteleri izin vermek veya bunu inkar etmek için istekte ne etki bilmemiz gerekir çünkü CORS'yi kullanırken Origin başlığının kurtulmak olamaz.)

+0

Not: Chrome bu hatayı veriyor: 'Yönlendiren ilkesi ayarlanamadı:' Hiçbiri 'değeri' her zaman ',' varsayılan ',' hiçbir zaman ',' yönlendirme dışı ',' yönlendirme-yok edici-zaman aşımı'ndan biri değil ',' kökeni ',' kökeni-çaprazlama 'veya' güvensiz-url '. Bu belgenin referrer politikası değiştirilmeden bırakıldı. 'Belirtilen' vaat 'yanlış olarak görünüyor. –

+1

@ TomPažourek Teşekkürler. Bence bu eski sözdizimi. Bunu nasıl kullandığımı bilmiyorum. – ssokolow

+0

Yine de, önerilen meta etiketi içeren yönlendiriciyi geçen bazı tarayıcılar var. Referansı HERHANGİ bir tarayıcıya göndermeyi bırakmanın daha iyi bir yolu var mı? Noopener kullanımı yardımcı olur mu? – Alex

0

sağlanan. Konuyla ilgili daha fazla bilgi burada: https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer

Aynı kökenli veya çapraz kaynaklı istekler için farklı kurallara ihtiyacınız varsa, gönderme bilgilerini göndermenize veya göndermemeye özellikle izin verin.

Özel kullanım durumunuza bağlı olarak dikkate alınması gereken bir şey. yani 3. taraf web sitelerinden resimler/css/javascript ile çekiyorsanız, bunu yaptığınız URL'yi tanımlamak isteyebilirsiniz ve dolayısıyla yönlendiren olmayan seçeneği kullanırsınız. Kendi web sitenizden başka web sitelerine bağlantı veriyorsanız, onlara trafik gönderdiğinizden haberdar olmalarını isteyebilirsiniz. Her zaman bunun her iki tarafında da sonuçlarını düşünün. Bu iki alanda bir çakışma varsa, URL'lerin sonuna bazı insanlar için kullanışlı olabilecek UTM izleme parametreleri eklemek gibi başka seçenekler de vardır. Buradaki tüm detaylar: https://www.contradodigital.com/2014/06/03/importance-utm-tracking-parameters-social-media/

İlgili konular