前些天开始在朋友的服务器上发现,视频盗链比较严重,起初只是简单的把一些盗链的IP段封锁了事,没想到最近越来越多,没办法只好设置了一下仅对仅有的一些ip开放。但这样在一些其他地方使用起来又极其不便,于是今天一大早来就开始解决远古程序盗链的问题,真是“道高一尺,魔高一丈”,好不容易找到了一套解决方案,已经处理好了正在观察中。如果还有哪位朋友的远古系统也在遭受盗链的困扰并难以解决时,可以一起探讨。
解决思路:
1、安装SP1,必须安装SP1,不然就不好使。
2、在SQL 2000企业管理器中新建一个用户,设置并记住密码,回到SysConfig表,把SysConfig的media的除Select权限的其他几项权限去掉,然后再把这些权限给刚才建立的用户。
3、把UserStatus改为11。默认值为10
4、由于默认SQL帐号对media数据库只有Select权限了,因此在执行Update操作时就会出错,此时通过修改ASP文件来解决。
5、在数据库连接文件中新创建一个连接,然后在所有对Sysconfig表操作的地方使用该连接来操作。
例如: 程序代码 <%set con = Server.CreateObject("ADODB.Connection")
ConnectionString = "driver={SQL Server};server=(local);uid=media;pwd=password;database=WebMedia"
con.ConnectionString = ConnectionString
con.Open
szDBType = "MSSQLSERVER"%>
重新创建一个: 程序代码
<%set con2 = Server.CreateObject("ADODB.Connection")
ConnectionString = "driver={SQL Server};server=(local);uid=media;pwd=password;database=WebMedia"
con2.ConnectionString = ConnectionString
con2.Open
szDBType = "MSSQLSERVER"%>
在执行Update操作的地方: 程序代码
if Session("UserIPAddr") = "" then
Session("UserIPAddr") = Request.ServerVariables("REMOTE_ADDR")
szSQL = "Update SysConfig SET KeyValue = KeyValue+1 Where KeyName='Count'"
con2.Execute szSQL
end if