2012-01-13 37 views
11

Chúng tôi sử dụng URLReferrer và mã được truyền vào chuỗi truy vấn để tạo video trực tuyến để chỉ những khách hàng trả tiền của chúng tôi mới có thể liên kết đến trang phát lại video của chúng tôi. Hệ thống này đã hoạt động tốt trong một thời gian. Tôi biết rằng liên kết giới thiệu URL có thể bị giả mạo, nhưng ai sẽ nói với khách hàng của họ làm một việc như vậy để truy cập video? Nó hoạt động tốt cho chúng tôi.URLReferrer là null khi trang là HTTPS

Tuy nhiên, hôm nay tôi được hỏi về người nào đó không làm việc. URLReferrer là null và trang web của chúng là HTTPS. Tôi đã thực hiện một số đọc trực tuyến và tôi nhận được ấn tượng không có cách nào để truy cập vào liên kết giới thiệu URL khi trang nguồn là https. Điều này có đúng không? Nếu tôi đã tạo một phiên bản https của trang web của chúng tôi, điều đó có giải quyết được không? Hay có cách nào khác để tôi vượt qua chuyện này?

Cảm ơn

Trả lời

13

Nghiên cứu trực tuyến của bạn là chính xác. Lý do chính để không đặt tiêu đề HTTP Referrer hoặc tương đương là điều này có thể là vấn đề bảo mật. Liên kết giới thiệu chứa "bạn đến từ đâu", đây là thông tin cá nhân và không nên tiếp xúc với những người khác, việc sử dụng trang web an toàn là gì nếu mọi người có thể theo dõi bạn đang ở đâu?

Vì vậy: bạn không thể nhận được liên kết giới thiệu nếu liên kết giới thiệu được mã hóa (với SSL hoặc cách khác).


Cập nhật: đây là những gì các HTTP specification says about coming from a secure site:

Khách hàng KHÔNG NÊN bao gồm một header field Referer trong một yêu cầu HTTP (không an toàn) nếu trang đề cập đã được chuyển giao với một giao thức an toàn .

Như bạn có thể đã đoán, không có cách nào xung quanh hạn chế này. Tùy chọn duy nhất của bạn là sử dụng một mô hình xác minh khác. Một phương pháp như vậy là cung cấp cho người dùng của bạn một khóa và yêu cầu họ gửi nó như một tham số với yêu cầu. Một số phương pháp khác có thể được nghĩ đến.

+0

Cảm ơn - vấn đề với khóa đơn giản là ai đó có thể sao chép liên kết ra khỏi trang của họ và sử dụng nó, đây là những gì chúng tôi đang cố gắng tránh. Vì đó là video, giải pháp hiển nhiên là chỉ cho phép họ nhúng video vào trang của riêng họ và không liên kết đến trang phát lại của chúng tôi. – cgraus

+0

Đã +1, chỉ cần cầu kỳ, bạn đang trích dẫn thông số HTTP, không phải là [HTTPS spec] (http://tools.ietf.org/html/rfc2818) ;-) – Bruno

+0

@Bruno: you ' đúng, tôi không chú ý đủ. Đã sửa. – Abel

Các vấn đề liên quan