校园网站内视频、电影的下载控制
刚刚接手一个旧项目,要对系统电影视频下载时,控制只有在事先通过网站的会员登陆验证才可进行。详细说明:
用户对动感校园网站内的电影视频下载,可以是在访问网站时,点击电影链接下载(只有通过登陆验证才能访问网站)。也可以在只有一个电影链接的情况下,比如这个(http://bbs.smu.edu.cn/campus/movie/show.aspx?ServerID=17&MovieID=3212&FileName=MOVIE-207-2008-07-14-091031.RMVB)在浏览器打开,就可以下载,或者把链接复制到迅雷新建一个任务就可以下载。这种通过URL链接就可以下载的方式,是无须在通过登陆验证就可以进行的。现在的任务就是要令这种情况不能出现,控制用户在通过URL链接下载或者播放时,如果未在网站通过登陆验证时,就会自动返回首页,警告用户先登陆。
这个任务的难点在于,动感校园网站的IIS服务器是用Windows系统,数据库用SQL Server,而电影所存放的服务器用的是Linux系统,Apache服务器,数据库是mySQL,如何把用户是否已经在网站通过了登陆验证的状态信息,发给存放电影所在的Apache服务器(Linux服务器上面的数据库没有用户的注册信息),从而让用户在直接通过URL链接下载时,从URL链接就可以得到用户的登陆信息。这个如何实现?或者是如何设计链接,已达到效果?或者有哪些解决方法……?
烦请各路高手帮忙思量解决方法,或者建议, 非常感谢!
刚刚接手一个旧项目,要对系统电影视频下载时,控制只有在事先通过网站的会员登陆验证才可进行。详细说明:
用户对动感校园网站内的电影视频下载,可以是在访问网站时,点击电影链接下载(只有通过登陆验证才能访问网站)。也可以在只有一个电影链接的情况下,比如这个(http://bbs.smu.edu.cn/campus/movie/show.aspx?ServerID=17&MovieID=3212&FileName=MOVIE-207-2008-07-14-091031.RMVB)在浏览器打开,就可以下载,或者把链接复制到迅雷新建一个任务就可以下载。这种通过URL链接就可以下载的方式,是无须在通过登陆验证就可以进行的。现在的任务就是要令这种情况不能出现,控制用户在通过URL链接下载或者播放时,如果未在网站通过登陆验证时,就会自动返回首页,警告用户先登陆。
这个任务的难点在于,动感校园网站的IIS服务器是用Windows系统,数据库用SQL Server,而电影所存放的服务器用的是Linux系统,Apache服务器,数据库是mySQL,如何把用户是否已经在网站通过了登陆验证的状态信息,发给存放电影所在的Apache服务器(Linux服务器上面的数据库没有用户的注册信息),从而让用户在直接通过URL链接下载时,从URL链接就可以得到用户的登陆信息。这个如何实现?或者是如何设计链接,已达到效果?或者有哪些解决方法……?
烦请各路高手帮忙思量解决方法,或者建议, 非常感谢!
不成熟的想法,拿出来给高手指正。
生成链接时加入一个授权码,比如由电影名称,用户ip,和服务器端密钥,iis生成链接,传递到apache是再生成以便进行验证。
如果验证通过了,返回给用户依然还是电影在服务器的路径链接,客户如果查看源代码,还是能得到电影的链接,这种验证就失去了意义了呀还是要谢谢你的回复!继续等候各路高手的指点…………
一个方法就是,如果linux端没有验证,则在win服务器验证,验证后,后台读linux服务器的图片后返回输
要以允许linux的电景只允许你的ip或用户名输出登录。但这样的,显然输出要慢的多!
还有一个就是win后台加一个验证或授权给linux,授权随机但linux能解码,直接跳转到linux输出
不知我用apache的mod_rewrite的这种用法对不对呢?
返回着连接改造成这样的,可能解决lz的问题。
1.追加一个公用的输出影像的php页面
http://****php?认证key等等
2.在该公用的认证PHP页面里面
判定认证key的有效,这个我想对lz来说不是什么问题,最简单的就是
着这里把认证key送到登陆服务器去确认一下就Ok
3。认证通过后,调用header把页面的content-type指定成binary的,
输出方法参考如下:
header("Cache-Control: public, must-revalidate");
header("Pragma: hack");
header("Content-Type: application/octet-stream" );
header("Content-Length: " .(string)(filesize($fullpath)) ); ----在这里把真实路径支出来。
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Content-Transfer-Encoding: binary\n");
想请问一下 bigman_lfj ,你所讲的方法,最后返回给用户的链接,如果是在播放器或者浏览器打开,点击查看源文件,是不是能够看到链接,
而且是http://*****.RMVB这样的链接?
lz参考一下代码把,提示下载对话框,制定文件名,文件的真实存放只有在
php解释时候服务器端直到,用户是不知道的。
<?php
header('Content-Type: application/octet-stream');
header('Content-Disposition: filename=dl.zip');
header('Content-Length: '.filesize('dl.zip'));
readfile("dl.zip");
?>
perl程序里面显然是没有key的,所以就不能访问了。
不过这种方式弄完,好像下载工具没法下载,只能通过浏览器下载.
请问gqming兄弟,怎么设计这个key,key包含了哪些内容呢?
要不要对电影的链接做一些改动呢?
其实最简单的就是最好的。我给你一个防盗链程序,保你吃顿大肉!联系我:[email protected]