2011-02-16 24 views
6

Trong IE và Chrome, nếu đối tượng swf của bạn yêu cầu url (tệp mp3 chẳng hạn), nó cũng sẽ chuyển HTTP_REFERER trong yêu cầu. HTTP_REFERER sẽ là url của đối tượng swf.Flash trong Firefox không gửi giá trị HTTP REFERER

Điều này không xảy ra trong Firefox. HTTP_REQUEST luôn trống.

Đây có phải là một số tùy chọn trong mã swf, lỗi trong flash hoặc giới hạn của trình duyệt không? Và có cách nào để khắc phục điều này không?

Xin cảm ơn trước.

+0

Tôi nghĩ rằng không có giải pháp thay thế. Tôi đã thấy mọi người thêm URL của trang hiện tại vào một tham số riêng biệt thay vì –

+2

Lỗi này đã hoạt động trên bugzilla trong ba năm. :(https://bugzilla.mozilla.org/show_bug.cgi?id=410904 – Amalgovinus

+0

Hoàn toàn vít lên bảo vệ liên kết nóng/leech trên một số máy chủ. Điều đó thực sự cần được xem xét. – Unsigned

Trả lời

3

Cùng một vấn đề ở đây, Sau một số nghiên cứu, nó xuất hiện là lỗi 3 năm tuổi từ mozilla như đã nêu trước đây bởi @Amalgovinus.

Chúng tôi đã tìm thấy giải pháp cho việc này thực hiện yêu cầu POST thay vì yêu cầu GET bên trong flash. Bạn cũng phải vượt qua một dữ liệu giả như flash automaticly sẽ thay đổi yêu cầu POST của bạn đến một GET nếu không có dữ liệu ngay để gửi dọc theo yêu cầu đây là một mẫu mã flash để làm cho công việc này:

var url = "http://exemple.com/myNotHotlinkedSong.mp3"; 
var myRequest:URLRequest = new URLRequest (url); 
myRequest.method = URLRequestMethod.POST; 
// add some data to the request to force the use of POST inside flashPlayer 
myRequest.data = "fake=fake"; 

Chúng tôi bây giờ hạnh phúc để có thể sử dụng .htaccess của chúng tôi để tránh hotlinking ngay cả trong FF, hy vọng những người khác sẽ tìm thấy điều này hữu ích.

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