Https alan adımdan yönlendirme başlığını http alan adlarına nasıl aktarabilirim?


13

Web sitem% 100 https. Diğer http etki alanlarına bağlantılar var. Bir https sayfasından bir http sayfasına bağlanırken yönlendirme başlığı ayarlanmaz. Gönderen http://en.wikipedia.org/wiki/HTTP_referrer

Bir web sitesine bir HTTP Güvenli (HTTPS) bağlantısından erişilirse ve bir bağlantı başka bir güvenli konum dışındaki herhangi bir yeri gösterirse, başvuru alanı gönderilmez.

Ben diğer alan adları tercih ederim edebilirsiniz o trafik Alanım geliyor biliyorum ki yönlendirenini görüyoruz. Bu başlığı zorlamanın bir yolu var mı yoksa başka bir çözüm var mı?

Güncelleme

Bir yönlendirme kullanarak bazı temel testler yaptım:

http page  -- link to http  --> 301 redirect --> http page = referrer intact
https page -- link to https --> 301 redirect --> http page = referrer blank
https page -- link to http  --> 301 redirect --> http page = referrer blank
https page -- link to http  --> 302 redirect --> http page = referrer blank

Bir https sayfasından kendi alanımdaki bir http yönlendirme sayfasına bağlanırken yönlendiren kaybedilir. Yani yönlendirmede yönlendiren yok.


OriginOlsa kullanım örneğini uygun olmayabilir, bozulmamış olmalıdır.
Pacerier

Yanıtlar:



8

Ben de aynı sorunu yaşadım. Aşağıdaki gibi meta etiketi ekleyerek çözdüm ve sadece Chrome ve Safari'de çalışacak.

<meta name="Referrer" content="origin">

6

Ne yazık ki HTTPS üzerinde HTTP kullanan sitelere yönlendiremezsiniz. Ancak HTTPS'den HTTPS'ye veya HTTP'den HTTPS'ye yapabilirsiniz.

KAYNAK

İstemciler, yönlendiren sayfa güvenli bir protokolle aktarıldıysa (güvenli olmayan) bir HTTP isteğine bir Yönlendirme başlığı alanı İÇERMEMELİDİR.

Bir çözüm, HTTPS'de ziyaretçiye bağlantıyı yönlendirmek yerine HTTP'ye yönlendirdiğiniz ve ardından yeniden yönlendiren bir iç yönlendirme komut dosyası kullanmak olacaktır.

Örneğin:

<a href="http://www.yours.com/out.php?www.other.com">www.outboundsite.com</a> ancak bu orijinal yönlendireni kullanmaz.

Başka bir olasılık da yönlendiriciler yerine geri izleme kullanmaktır ve bildiğim kadarıyla HTTPS'de çalışır.


Testim bir yönlendirme kullanmanın işe yaramadığını gösterdi (güncellemeye bakın).
fındıkkıran

Geri izleme kullanın veya HTTPS'yi kaybedin;)
Simon Hayter

1
@bybe, Bu yanıtın düzenlenmesi gerekiyor. Bkz serverfault.com/a/520603/87017 ve webmasters.stackexchange.com/a/71331/7654
Pacerier

4

Bir HTTPS sayfasından başka bir etki alanındaki bir HTTP sayfasına bağlantı kurabildim ve yine de aşağıdaki tekniği kullanarak ilk sayfanın URL'sini yönlendiren olarak geçebildim.

Tanımlar

Başlangıç ​​sayfası : HTTP tarafından barındırılan hedef sayfanın bağlantısının bulunduğu HTTPS sayfası. Bu örnekte:https://example1.com/origin.html

Hedef sayfa : Başlangıç ​​sayfasının yönlendirenine erişimi olan HTTP sayfası. Bu örnekte:http://example2.com/destination.html

Temel plan

Bunun, yönlendirmenin başlangıç ​​sayfasının HTTP sürümünden gelmesini sağlama etkisi vardır:

  1. HTTPS başlangıç ​​sayfasındaki bağlantı geçerli sayfaya bağlanır, ancak hedef sayfa için bir sorgu parametresi ekler [1]. Örneğin:https://example1.com/origin.html?goto=http://example2.com/destination.html

  2. Bağlantı tıklandığında example1.com adresindeki sunucu, 'goto' sorgu parametresi mevcut olduğunda standart isteği keser. O zaman:

    • 'Goto' parametresini bir 'goto' çerezinde saklar.
    • 'Goto' parametresini ve değerini geçerli isteğin URL'sinden kaldırır
    • 302, kaynak etki alanının HTTP sürümündeki bu yeni temizlenmiş URL'ye yönlendirir. http://example1.com/origin.html
  3. Sunucu her bir 'git' çerezi isteğini kontrol eder ve varsa çerezi temizler ve çok basit bir yönlendirme sayfası oluşturur. Bu sayfa [2] içerir:

    • Git çerez url'sine yönlendiren bir Javascript window.location.replace () komut dosyası.
    • Goto çerez URL'sinin değeri ve birkaç saniye gecikmeli bir Meta Yenile etiketi.
    • Git çerez URL'sine bir bağlantı.

notlar

[1] Bu temel çözüm açık bir yeniden yönlendiricidir ve kimlik avı saldırılarında UA'ları yeniden yönlendirmek için goto sorgu parametresini kullanarak kötü adamlara karşı korumaya dikkat edilmelidir.

[2] Bir JS yönlendirme veya meta yenileme etiketi üzerinden yönlendirirken tüm tarayıcılar yönlendireni göndermez. Benim test IE8 ve daha düşük yönlendiren geçmez.

Bu tekniğin arama motoru tarayıcılarının bağlantıları takip etmesine izin verip vermeyeceğinden emin değilim. Bu benim gereksinimlerim için önemli değil.

UA'da çerezler devre dışı bırakılmışsa, bu yalnızca başlangıç ​​sayfasına yeniden yönlendirir.

HTTP yönlendirmelerine yalnızca yönlendirmeler için izin verme

Sunucumda, istek ne olursa olsun HTTPS'yi uygulamak için bir Apache kuralı var:

<VirtualHost *:80>
    ServerName example1.com

    # if not on port 443 then 301 redirect to https while keeping any query string
    RewriteEngine              On
    RewriteCond %{HTTP_HOST}  ^example1\.com$ [NC]
    RewriteCond     %{SERVER_PORT} !443
    RewriteRule     ^(.*)$     https://%{HTTP_HOST}$1 [L,QSA,R=301]

Yukarıdaki yönlendirme tekniğinin çalışması için koşullu olarak HTTP bağlantılarına izin vermenin bir yoluna ihtiyacım var. Bunu yapmanın birçok yolu var. Çerezin işe yarayacağına karar verdim.

<VirtualHost *:80>
    ServerName example1.com

    # if not on port 443 then 301 redirect to https while keeping any query string
    RewriteEngine              On
    RewriteCond %{HTTP_HOST}  ^example1\.com$ [NC]
    RewriteCond     %{SERVER_PORT} !443
    RewriteCond %{HTTP_COOKIE}  !disable_ssl [NC]
    RewriteRule     ^(.*)$     https://%{HTTP_HOST}$1 [L,QSA,R=301]

Ctiv_ssl çerezi 2. adımda ayarlanır ve 3. adımda silinir.


Tamam .... ama bu tam olarak "yönlendirme başlığını " geçmiyor .
Pacerier


0

İstediğiniz şey mümkün görünmüyor, bu nedenle olası bir çözüm; hedef site Google Analytics kullanıyorsa (veya Piwik'in benzer sözdizimini kullandığını ve diğer istatistik paketlerinin bunu görmezden gelmek için uygun olmadığını düşünüyorsanız) izleme parametrelerini gönderebilirsiniz, örneğin example.com'a olan bağlantınızda

http://www.example.com/?utm_campaign=spring&utm_medium=referral&utm_source=exampleblog

bu, GA'larında ayrıntılarla görünür, başkalarının kullanması pek olası olmayan değerleri seçtiğinizden emin olun, böylece onları çatışmalara zorlamayın / veya trafiğinizi başkalarının arkasına gizlemeyin

Google, burada kullanışlı bir URL oluşturucu yapıyor http://support.google.com/analytics/answer/1033867?hl=tr

Güncelleme - yeniden: görgü kuralları

Trafiğin doğası hakkında daha fazla bilgi sahibi olmadan, sadece genel olarak / kişisel olarak konuşabilirim ...

görgü kuralları her zaman izleyicinin gözünde olacaktır. Bu olmadan GA'da en azından doğrudan ya da markalarının olduğundan daha büyük görünmesini sağlamak için rakamlarını eğecek (belki de hiçbiri) olarak görüneceğini düşünüyorum. Şahsen dikkatle seçilmiş bir kampanyayı tercih ederim, bu yüzden trafiğin nereden geldiğini biliyorum.

Ayrıca, onlara herhangi bir trafik gönderirseniz, muhtemelen fark etmeyeceklerdir, eğer çok fazla gönderirseniz, muhtemelen şikayet etmeyeceklerdir! Eğer öyleyse, genellikle ücretsiz trafik vermek için başka birini bulabilirsiniz!

ve çok spesifik iseniz, sorunlara neden olmamalıdır; sitenizin adı olarak kampanya ve sitenizin bölümü olarak kaynak olabilir?

http://www.example.com/?utm_campaign=mygreatsite.com&utm_medium=referral&utm_source=specialoffers

İyi bir fikir! Ben bu geçici çözüm hakkında düşünmüştü ama onların sonunda bunu uygulamak etrafında bazı "kurallar" olup olmadığını merak etti. Normalde bu sorgu parametreleri, üçüncü taraf web sitesi tarafından kampanyalarını vb. İzleyebilmeleri için eklenir. Bu yaklaşım herhangi bir şekilde kötü uygulama olarak kabul edilir mi?
fındıkkıran
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.