Tôi biết một số lịch sử và mục đích của nó.
Nguyên facebook url hình ảnh giống như thế này
https: // {* snipped *} /XXXXXXXXXXX_b.jpg
nhưng có hơn vào kích thước của hình ảnh có sẵn để mọi người được tiếp cận với hình ảnh thu nhỏ chỉ đơn giản là có thể thay thế hậu tố _b với _n
(Vì vậy, bây giờ là https: // {* snipped *} /XXXXXXXXXXX_n.jpg)
để truy cập vào phiên bản lớn hơn của hình ảnh (nếu có).
Một thời gian sau, facebook triển khai hệ thống hình ảnh trung tâm có thể tự động cắt và thay đổi kích thước hình ảnh khi đang di chuyển theo yêu cầu.
Url được cung cấp bởi facebook tại thời điểm này có thể trông giống như sau:
https: // {* snipped *} .fbcdn.net/hprofile-xxx1/v/t1.0-1/p32x32/12345678_123412341234123_4123412341234123412_n.jpg
Và khi mọi người thấy url, sự tò mò của họ phát sinh.
Hãy thử xóa một số tham số khỏi url.
https: // {* snipped *} .fbcdn.net/hprofile-xxx1/v/12345678_123412341234123_4123412341234123412_n.jpg
Và những gì họ nhận được là phiên bản lớn nhất và đầy đủ nhất của hình ảnh mà họ có thể nhận được từ máy chủ facebook.
Phương pháp này đã hoạt động trong một thời gian dài.
Khi mọi người nhìn thấy hình ảnh trong email của họ (chủ yếu là ảnh tiểu sử), họ có thể nhận được phiên bản hoàn chỉnh của hình ảnh mà không cần đăng nhập vào facebook.
Nó hoạt động ở mọi nơi bao gồm ảnh hồ sơ cá nhân.
Giải pháp khắc phục nhanh nhất và rẻ nhất cho facebook là ký đường dẫn yêu cầu với một số thuật toán chữ ký.
Tôi đoán họ sử dụng HMAC làm thuật toán cốt lõi và lấy được đầu vào HMAC từ nhiều nguồn khác nhau kể cả đường dẫn yêu cầu.
Điều này sẽ đảm bảo rằng bên duy nhất có thể tạo url hợp lệ là một trong những người có khóa HMAC. (có lẽ chỉ là facebook)
Bây giờ vấn đề cũ là cố định bạn không thể sử dụng nó nữa nhưng có nhiều vấn đề có thể được sửa bằng cách thêm MAC.
Việc vô hiệu hóa quyền truy cập vào hình ảnh là không hợp lệ.
Giả sử mọi người xuất bản ảnh của họ (giờ đây người khác có thể có cả đường dẫn yêu cầu hợp lệ cùng với chữ ký đã ký từ facebook) và sau đó họ đổi ý và đặt ảnh riêng tư.
Tuy nhiên, những người có url và chữ ký hợp lệ vẫn có thể tìm nạp hình ảnh từ máy chủ facebook.
Để giải quyết vấn đề này với nguồn tài nguyên siêu rẻ được coi là họ đã thực hiện tính toán HMAC.
(Và để che khuất thực tế rằng facebook không thực sự xóa hình ảnh của bạn khỏi hệ thống của chúng khi bạn xóa nó.)
Chúng quyết định trộn giá trị bắt nguồn từ dấu thời gian vào đầu vào của HMAC.
(Xem RFC-6238 để sử dụng tương tự)
Vì vậy, làm mới chữ ký từ facebook được yêu cầu định kỳ để truy cập vào ảnh.
Điều này giải quyết được vấn đề thứ hai với nguồn lực bổ sung rất rẻ.
Và ở đây bạn có nó.
Một số lịch sử và lý do đằng sau các thông số của facebook.
Tôi chắc chắn rằng không có tài liệu chính thức về khung thời gian nhưng không khó để tự mình thực hiện một số thử nghiệm cho rằng bây giờ bạn biết rằng giá trị của khung thời gian bạn muốn là cố định và có thể dự đoán được.
Bạn có tìm thấy gì về điều này không? tôi chỉ có cùng một vấn đề. – cappie013
Không có giải pháp thực sự. Những gì chúng tôi đã làm để vượt qua vấn đề này. Để tải xuống hình ảnh trong vòng 24 giờ và lưu trữ hình ảnh đó ở nơi khác. – Luc