Hi there,  I hope that someone might have an idea or suggestion to help me
here.

 

I have a web application running on Linux in Apache 2, php5.  The
application manages a media database that is accessed by subscription.  The
content is served off separate Apache servers - some are located in
different geographic regions.  All users access the content by common URL,
such as http://www.maindomain.com/123/file.avi

 

I use .htaccess with mod_rewrite to modify the incoming URL to a PHP script
such as http://www.maindomain.com/getfile.php?user=123
<http://www.maindomain.com/getfile.php?user=123&file=file.avi>
&file=file.avi

 

This works great and the PHP script is called, logs the request, checks the
user's subscription rights, and if ok redirects them to the actual file to
obtain by way of a Header() command (ie. Modifies the HTTP header to do a
Location: ..  To where the file actually resides).

 

Although this works perfectly, the problem is that the user's browser will
change to reflect the endpoint URL where the file actually resides.  Users
then simply have been cutting & pasting this URL into their own websites and
providing unaudited access to the raw file directly and bypassing our
script.

 

I need to find a way to do this without displaying the endpoint URL to the
user in anyway.  But it has to be able to be done through a PHP script.
Clearly Header() in PHP isn't cutting it.  I also have to use Apache at each
endpoint web server location.

 

I'm wondering if anyone has a suggestion on how best to do this?  Can I
install something in .htaccess on the endpoint server end to reject incoming
requests that are not via authenticated redirects?  Can I use the
HTTP_REFERRER in some way to ensure that what has come to this server came
by way of a legitimate referral?

 

All ideas are greatly appreciated.

 

Thanks

Myles

 

Reply via email to