Zunächst einmal ist es sehr einfach, einen Referer zu fälschen. Diese Informationen werden im Browser des Benutzers gespeichert, so dass ein Benutzer einfach in den Server telnet und seinen eigenen Referer zur Verfügung stellen kann, der zu Ihrer Domain passt.
Ein paar Dinge, die Sie könnten versuchen:
Zuerst sicherer, aber immer noch fälschbare. mod_rewrite bietet die Möglichkeit, Cookies zu überprüfen. Was Sie tun könnten, ist ein Cookie zu setzen, wenn der Benutzer Ihre Website besucht, die einige obskure Daten enthält. Dann könnten Sie Ihre RerwriteCond zu so etwas wie dies ändern:
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]
Eine andere, bessere Technik würde bedeuten, mit PHP und Mime-Typen arbeiten. Ich bin mir nicht sicher, in welchem Umfang dies Streaming-Inhalte unterstützen würde, aber ich gehe davon aus, dass es funktionieren wird. Was Sie tun können, ist, dass alle Ihre Video-Links auf eine .php-Datei zeigen (die Abfrage-Zeichenfolge bestimmt, welches Video ausgewählt wurde). Dann, wenn ein Benutzer auf diesen Link zu besuchen versucht, tun Sie so etwas wie so:
<?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);
}
?>
Von dem, was ich gelesen habe, die meisten Server kennen, die Mime-Typen Mime-Typen sind Streaming, so sollte der Browser Abbildung der Lage sein, heraus, wie man mit der Streaming-Datei richtig umgehen kann.
Die zweite Lösung funktioniert und ist sicher. Es ist jedoch keine gute Idee, große Dateien (Video) über php zu übergeben. – Jacco