本人开发一项目,类似51的图片防盗链系统,贴出来给大家共享吧
vip图片防盗链
1.设计目标:
用户访问图片,如果没有相应的权限,则访问不到外链的图片。如果用户购买了服务,则可以在服务期内可以访问图片
2.设计规划:
(1)用户状态值用json生成数值序列,外链主要程序进行调用该文件,请注意,整个外链代码是不牵扯到数据库的,因为那样数据库压力很大
(2)对于服务器设计,图片服务器进行取余运算(图片id%服务器数),把图片分配各不同的服务器,我们这里可以把服务器暂定为m1,m2.....m(n),另外有一个存放用户状态及操作控制用户状态的脚本服务器。对于生成的用户json数据,请用nfs方式挂载到图片服务器,
(3)对于前台web服务器,可能会有N台,可以在每台服务器的图片目录下,为图片服务器建立目录,并做相应挂载。
(4)对于每台图片服务的访问地址,则可以用urlrewriter的方式把目录隐藏,
例如:uid.m1.XXXX.com/2010/09/03/uid_600_iloveyou.jpg的实际目录为
m1.xxx.com/attachment/img1/2010/09/03/uid_600_iloveyou.jpg
(5)对于前台web服务器,可以做防盗链处理,禁止外链访问,例如
www.XXX.com/images/img1/2010/09/03/uid_600_iloveyou.jpg
3.核心代码(PHP):
每台服务器放入相应的图片外链程序,对vip进行控制: