Trong trường hợp nào HTTP_REFERER sẽ trống


163

Tôi biết có thể nhận được HTTP_REFERER trống. Trong hoàn cảnh nào điều này xảy ra? Nếu tôi nhận được một cái trống, điều đó luôn có nghĩa là người dùng đã thay đổi nó? Là nhận được một cái trống giống như nhận được một null? và trong hoàn cảnh nào tôi cũng nhận được điều đó?


8
Khi khách hàng không gửi.
Ignacio Vazquez-Abrams

Câu trả lời:


276

Nó sẽ / có thể trống khi enduser

  • đã nhập URL trang web trong thanh địa chỉ trình duyệt.
  • truy cập trang web bằng một bookmark duy trì trình duyệt.
  • đã truy cập trang web dưới dạng trang đầu tiên trong cửa sổ / tab.
  • nhấp vào một liên kết trong một ứng dụng bên ngoài.
  • đã chuyển từ URL https sang URL http.
  • đã chuyển từ một URL https sang một URL https khác.
  • đã cài đặt phần mềm bảo mật (chống vi-rút / tường lửa / v.v.) để loại bỏ người giới thiệu khỏi tất cả các yêu cầu.
  • là đằng sau một proxy loại bỏ người giới thiệu khỏi tất cả các yêu cầu.
  • đã truy cập trang web theo chương trình (như, cuộn tròn ) mà không đặt tiêu đề người giới thiệu (tìm kiếm!).

32
Bạn có thể muốn thêm "khi người dùng chuyển từ trang bảo mật (HTTPS) sang trang không an toàn".
John Pick

4
"đã truy cập trang web dưới dạng trang đầu tiên trong cửa sổ / tab." Ngay cả khi đó là bằng cách nhấp vào một liên kết và mở nó trong một cửa sổ / tab mới ?? Bạn có chắc không? Đó sẽ là một hành vi rất sai lầm của trình duyệt
matteo

Ngoài ra, hãy xem tại đây stackoverflow.com/questions/21922143/ Khắc để được miễn trừ điều này
GetFree

4
"đã chuyển từ URL https sang URL https khác". Bạn có chắc về điều này? : \
Oscar Mederos

5
Theo mặc định, việc chuyển từ URL HTTPS sang URL HTTPS khác sẽ đặt tham chiếu đầy đủ. Chính sách mặc định này tuy nhiên có thể được ghi đè. w3.org/TR/referrer-policy
Dhaval Kapil

34

HTTP_REFERER - được gửi bởi trình duyệt, cho biết trang cuối cùng mà trình duyệt đã xem!

Nếu bạn tin tưởng [HTTP_REFERER] vì bất kỳ lý do nào quan trọng, bạn không nên, vì nó có thể bị làm giả dễ dàng:

  1. Một số trình duyệt giới hạn quyền truy cập không cho phép HTTP_REFERER được thông qua
  2. Nhập địa chỉ vào thanh địa chỉ sẽ không vượt qua HTTP_REFERER
  3. mở một cửa sổ trình duyệt mới sẽ không vượt qua HTTP_REFERER, vì HTTP_REFERER = NULL
  4. có một số addon trình duyệt chặn nó vì lý do riêng tư. Một số tường lửa và AV làm.

Hãy thử tiện ích mở rộng firefox này, bạn sẽ có thể đặt bất kỳ tiêu đề nào bạn muốn:

@Master of Celemony:

Firefox:

tiện ích mở rộng: giới thiệu lại , từ chối , sửa đổi tiêu đề , không giới thiệu

Hoàn toàn vô hiệu hóa: tùy chọn có sẵn trong about: config trong "network.http.sendRefererHeader" và bạn muốn đặt tùy chọn này thành 0 để vô hiệu hóa chuyển tham chiếu.

Google chrome / Chromium:

tiện ích mở rộng: noref , giả mạo , noreferrer bên ngoài

Hoàn toàn vô hiệu hóa: Chnage ~ / .config / google-chrome / Default / Preferences hoặc ~ / .config / chromium / Default / Preferences và đặt cái này:

{
   ...
   "enable_referrers": false,
   ...
}

Hoặc chỉ cần thêm --no-giới thiệu vào phím tắt hoặc trong cli:

google-chrome --no-referrers

Opera:

Tắt hoàn toàn: Cài đặt> Tùy chọn> Nâng cao> Mạng và bỏ chọn "Gửi thông tin người giới thiệu"

Dịch vụ web giả mạo:

http://referer.us/

Proxy lọc độc lập (giả mạo bất kỳ tiêu đề nào):

Đặc quyền

Giả mạo http_Vferer khi sử dụng wget

'--referer = url'

Giả mạo http_Vferer khi sử dụng curl

-e, -

Giả mạo http_Vferer wth telnet

telnet www.yoursite.com 80 (press return)
GET /index.html HTTP/1.0 (press return)
Referer: http://www.hah-hah.com (press return)
(press return again)

Tamper Data là một tiện ích mở rộng khác của Firefox đáng xem nếu bạn muốn chơi với việc thay đổi giá trị của người giới thiệu.
Chris Hepner

Tôi đã rất cố gắng để nhớ tên của nó. nhưng ký ức của tôi đã phản bội tôi. Cảm ơn :)
ThatGuy

@nix Some browsers limit access to not allow HTTP_REFERER to be passedBạn có thể vui lòng đặt tên một ví dụ cho trình duyệt và / hoặc tiện ích mở rộng đó không?
Bậc thầy lễ kỷ niệm

@MasterofCelemony đã thêm các cách để giả mạo http numferer vào câu trả lời của tôi.
ThatGuy

Không sử dụng giới thiệu.us để giả mạo / ẩn người giới thiệu của bạn! Nó không hoạt động và rò rỉ thông tin của bạn. Dịch vụ làm việc duy nhất ngay bây giờ là dịch vụ giới thiệu ẩn miễn phí này .
Brian Smith

9

Danh sách của BalusC là vững chắc. Một cách khác mà trường này thường xuyên xuất hiện trống là khi người dùng ở phía sau máy chủ proxy. Điều này tương tự như đằng sau một tường lửa nhưng hơi khác một chút nên tôi muốn đề cập đến nó vì mục đích hoàn chỉnh.


8

Nó cũng sẽ trống nếu dự thảo tiêu chuẩn Chính sách giới thiệu mới được sử dụng để ngăn tiêu đề người giới thiệu được gửi đến nguồn gốc yêu cầu. Thí dụ:

<meta name="referrer" content="none">

Mặc dù Chrome và Firefox đã triển khai một phiên bản dự thảo của Chính sách giới thiệu, bạn nên cẩn thận với nó vì ví dụ Chrome mong đợi no-referrerthay vì none(và tôi cũng đã thấy neverở đâu đó).


bảng tương thích trình duyệt: developer.mozilla.org/en-US/docs/Web/HTTP/Headers/NH
djvg

0

Tôi đã tìm thấy việc thực hiện trình giới thiệu trình duyệt thực sự không nhất quán.

Ví dụ: một phần tử neo với thuộc tính "tải xuống" hoạt động như mong đợi trong Safari và gửi cho người giới thiệu, nhưng trong Chrome, người giới thiệu sẽ trống hoặc "-" trong nhật ký máy chủ web.

<a href="http://foo.com/foo" download="bar">click to download</a>

Bị hỏng trong Chrome - không có người giới thiệu nào gửi.

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.