Trước hết, rất dễ giả mạo người giới thiệu. Thông tin này được lưu trữ trong trình duyệt của người dùng, vì vậy người dùng có thể chỉ cần telnet vào máy chủ của bạn và cung cấp tham chiếu của riêng mình khớp với miền của bạn.
Một vài điều bạn có thể thử:
Đầu tiên, bảo mật hơn, nhưng vẫn giả mạo. mod_rewrite cung cấp khả năng kiểm tra cookie. Những gì bạn có thể làm là đặt cookie khi người dùng truy cập vào trang web của bạn có chứa một số dữ liệu không rõ ràng. Sau đó, bạn có thể sửa đổi RerwriteCond thành một cái gì đó như thế này:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_COOKIE} obscurename=obscurevalue [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
RewriteRule \.(asx¦ASX)$ http://www.yourdomain.com/images/leech.gif [R,L]
Một kỹ thuật khác tốt hơn sẽ liên quan đến làm việc với PHP và loại mime. Tôi không chắc chắn mức độ này sẽ hỗ trợ nội dung trực tuyến, nhưng tôi cho rằng nó sẽ hoạt động. Những gì bạn có thể làm là có tất cả các liên kết video trỏ tới tệp .php (chuỗi truy vấn sẽ xác định video nào đã được chọn). Sau đó, khi người dùng cố gắng đến thăm liên kết này, bạn làm điều gì đó giống như vậy:
<?php
// You could also check some sort of session variable
// that is set when the user visits another part of your
// site
if(!isLoggedIn()){
header("Location: errorPage.htm");
exit;
}else{
// Get the name of the file specified
$file = get_file_name($_GET['fileID']);
// Specify the proper mime-type for the data you're sending
// (this may have to change, depending on your situation)
header("Content-type: video/vnd.rn-realvideo");
// Read the file and output it to the browser
readfile($file);
}
?>
Từ những gì tôi đọc, hầu hết các máy chủ biết được mime-loại là streaming mime-loại, do đó trình duyệt sẽ có thể hình cách xử lý tệp truyền trực tuyến đúng cách.
Giải pháp thứ hai sẽ hoạt động và an toàn. Tuy nhiên nó không phải là một ý tưởng rất tốt để vượt qua các tập tin lớn (video) trough php. – Jacco