Làm cách nào tôi có thể chuyển tiêu đề người giới thiệu từ tên miền https của mình sang tên miền http?


11

Trang web của tôi là 100% https. Tôi có liên kết đến các tên miền http khác. Tiêu đề người giới thiệu không được đặt khi liên kết từ trang https đến trang http. Từ http://en.wikipedia.org/wiki/HTTP_Vferrer

Nếu một trang web được truy cập từ kết nối HTTP Secure (HTTPS) và một liên kết trỏ đến bất kỳ nơi nào ngoại trừ một vị trí an toàn khác, thì trường tham chiếu sẽ không được gửi.

Tôi muốn các tên miền khác có thể nhìn thấy người giới thiệu để họ biết rằng lưu lượng truy cập đến từ miền của tôi. Có cách nào để buộc tiêu đề này hoặc có một giải pháp khác?

Cập nhật

Tôi đã thực hiện một số thử nghiệm cơ bản bằng cách sử dụng chuyển hướng:

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

Giới thiệu bị mất khi liên kết từ trang https đến trang chuyển hướng http trên tên miền của riêng tôi. Vì vậy, không có giới thiệu về chuyển hướng.


Các Originnên còn nguyên vẹn, có thể không phù hợp với trường hợp sử dụng của bạn mặc dù.
Pacerier

Câu trả lời:



8

Tôi cũng có vấn đề tương tự. Tôi giải quyết bằng cách thêm thẻ meta như bên dưới và nó sẽ chỉ hoạt động trong Chrome và Safari.

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

6

Đáng buồn thay, bạn không thể giới thiệu trên HTTPS đến các trang web sử dụng HTTP. Tuy nhiên, bạn có thể thực hiện HTTPS sang HTTPS hoặc HTTP sang HTTPS.

NGUỒN

Khách hàng KHÔNG NÊN bao gồm trường tiêu đề Người giới thiệu trong yêu cầu HTTP (không bảo mật) nếu trang giới thiệu được chuyển với giao thức bảo mật.

Một công việc xung quanh sẽ là sử dụng tập lệnh chuyển hướng nội bộ thay vì chỉ dẫn liên kết với khách truy cập trên HTTPS mà bạn chuyển hướng đến HTTP và sau đó nó chuyển hướng ra ngoài.

Ví dụ:

<a href="http://www.yours.com/out.php?www.other.com">www.outboundsite.com</a> nhưng điều này sẽ không sử dụng giới thiệu ban đầu.

Một khả năng khác là sử dụng trackback thay vì giới thiệu và theo như tôi biết thì điều này hoạt động trong HTTPS.


Thử nghiệm của tôi đã chỉ ra rằng sử dụng chuyển hướng không hoạt động (xem cập nhật).
nutcracker

Sử dụng trackback hoặc mất HTTPS;)
Simon Hayter

1
@bybe, Câu trả lời này cần chỉnh sửa. Xem serverfault.com/a/520603/87017webmasters.stackexchange.com/a/71331/7654
Pacerier

4

Tôi đã có thể thiết lập một liên kết từ trang HTTPS đến trang HTTP trên một tên miền khác và vẫn chuyển URL của trang đầu tiên dưới dạng tham chiếu bằng kỹ thuật sau.

Các định nghĩa

Trang gốc : Trang HTTPS nơi đặt liên kết đến trang đích được lưu trữ HTTP. Trong ví dụ này:https://example1.com/origin.html

Trang đích : Trang HTTP có quyền truy cập vào tham chiếu của trang gốc. Trong ví dụ này:http://example2.com/destination.html

Kế hoạch cơ bản

Điều này có tác dụng làm cho chuyển hướng đến từ phiên bản HTTP của trang gốc:

  1. Liên kết trên trang gốc HTTPS liên kết đến trang hiện tại nhưng thêm một tham số truy vấn cho trang đích [1]. ví dụ:https://example1.com/origin.html?goto=http://example2.com/destination.html

  2. Khi nhấp vào liên kết, máy chủ tại example1.com sẽ ngắt yêu cầu tiêu chuẩn khi có tham số truy vấn 'goto'. Sau đó nó:

    • Lưu trữ tham số 'goto' trong cookie 'goto'.
    • Xóa tham số và giá trị 'goto' khỏi url của yêu cầu hiện tại
    • 302 chuyển hướng đến url được làm sạch mới này trên phiên bản HTTP của miền gốc tức là. http://example1.com/origin.html
  3. Máy chủ kiểm tra mọi yêu cầu đối với cookie 'goto' và nếu có sẽ xóa cookie và sau đó hiển thị trang chuyển hướng rất đơn giản. Trang này chứa [2]:

    • Tập lệnh Javascript window.location.replace () chuyển hướng đến url cookie goto.
    • Thẻ Meta Refresh có giá trị của url goto cookie và độ trễ vài giây.
    • Một liên kết đến url cookie goto.

Ghi chú

[1] Giải pháp cơ bản này là một chuyển hướng mở và cần cân nhắc một chút để bảo vệ chống lại kẻ xấu bằng cách sử dụng tham số truy vấn goto để chuyển hướng UAs trong các cuộc tấn công lừa đảo.

[2] Không phải tất cả các trình duyệt sẽ gửi người giới thiệu khi chuyển hướng qua thẻ chuyển hướng JS hoặc thẻ làm mới meta. Trong thử nghiệm của tôi IE8 trở xuống không vượt qua người giới thiệu.

Tôi không chắc liệu kỹ thuật này có cho phép các trình thu thập thông tin của công cụ tìm kiếm theo các liên kết hay không. Điều này không quan trọng đối với yêu cầu của tôi.

Nếu UA có cookie bị vô hiệu hóa thì điều này sẽ chỉ chuyển hướng đến trang gốc.

Cho phép kết nối HTTP chỉ để chuyển hướng

Trên máy chủ của tôi, tôi có một quy tắc Apache để thực thi HTTPS bất kể yêu cầu:

<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]

Để kỹ thuật chuyển hướng ở trên hoạt động, tôi cần một số cách để cho phép kết nối HTTP một cách có điều kiện. Có rất nhiều cách để làm điều này. Tôi quyết định một cookie sẽ hoạt động.

<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]

Cookie vô hiệu hóa sẽ được đặt ở bước 2 và sau đó bị xóa ở bước 3.


Ok .... nhưng điều này không chính xác vượt qua " tiêu đề người giới thiệu ".
Pacerier

2

theo giao thức HTTP 1.1 http://www.w3.org/Prot Protocol / rfc2616 / rfc2616-sec15.html # secec.1.1.3

Khách hàng KHÔNG NÊN bao gồm trường tiêu đề Người giới thiệu trong yêu cầu HTTP (không bảo mật) nếu trang giới thiệu được chuyển với bảo mật


1
Tại sao tôi không nên?
Martijn

0

Có vẻ như những gì bạn muốn là không thể, vì vậy một cách giải quyết có thể; nếu trang mục tiêu đang sử dụng Google Analytics (hoặc một chương trình tương thích, tôi tin rằng Piwik sử dụng cú pháp tương tự và các gói thống kê khác sẽ không thể bỏ qua điều này), bạn có thể gửi thông số theo dõi, ví dụ: trong liên kết của bạn đến example.com

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

điều này sẽ hiển thị trong GA của họ với các chi tiết, đảm bảo chọn các giá trị mà không ai khác có thể sử dụng để bạn không buộc họ xung đột / hoặc ẩn lưu lượng truy cập của bạn đằng sau một ai đó

Google thực hiện một trình tạo url tiện dụng tại đây http://support.google.com/analyticsaru/1033867?hl=vi

Cập nhật - lại: nghi thức

Không biết thêm về bản chất của giao thông, tôi chỉ có thể nói chung / cá nhân ...

nghi thức luôn luôn là trong mắt của kẻ si tình. Nếu không có điều này, tôi nghĩ rằng trong GA ít nhất nó có thể hiển thị dưới dạng trực tiếp hoặc có thể (không có tập hợp nào) sẽ làm lệch các số liệu của họ để làm cho nó trông giống như thương hiệu của họ lớn hơn nó. Cá nhân tôi thích một chiến dịch được lựa chọn cẩn thận để tôi biết lưu lượng truy cập đến từ đâu.

Bạn cũng có thể xem xét nó, nếu bạn hầu như không gửi cho họ bất kỳ lưu lượng truy cập nào, họ có thể sẽ không thông báo, nếu bạn gửi cho họ nhiều thì họ có thể sẽ không phàn nàn! Nếu họ làm như vậy, thì bạn thường có thể tìm người khác để cung cấp lưu lượng miễn phí cho!

và nếu bạn rất cụ thể, nó không nên gây ra vấn đề; chiến dịch như tên của trang web của bạn và nguồn là phần của trang web của bạn có thể?

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

Ý tưởng tốt! Tôi đã nghĩ về cách giải quyết này nhưng tự hỏi liệu chúng có phải là một số "quy tắc" xung quanh việc thực hiện điều này từ cuối của tôi không. Thông thường các tham số truy vấn này được thêm vào bởi trang web của bên thứ ba để họ có thể theo dõi các chiến dịch của mình, v.v ... Cách tiếp cận này có bị coi là thực hành xấu theo bất kỳ cách nào không?
nutcracker
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.