手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2024年11月的文章

防盗链的几种常见方法

身为一个网站管理人员,防盗链这个任务实在是任重而道远呀。不说别的,如果不控制,每天的流量可能就会刷刷刷的往上涨,可实际情况呢?根本没有人来浏览。这还不是最重要的,最重要的是这些流量占用了大量带宽,影响了其他人的正常浏览。长此以往,来浏览的人就更少了,再最后就造成恶性循环,网速越慢,来看的人越少,来看的人越少,被下载的机会就越多,也就导致打开网页更慢。

作为一个非下载性网站,防盗连实在是有一些必要,这里我也不谈很多,毕竟防盗链也是一门很高深的技术,我只能随便谈谈。

技巧没有多少,稍谈一点
1、利用SESSION机制,判断该用户的session存在多久?如果是刚生成的,则不让下载
2、COOKIE机制,如果是正常浏览网页,那么生成一个COOKIE,然后才允许下载
3、检查客户机的agent,不过这个很不准确,大多数下载工具都会伪造一个头
4、referer,这个嘛。。。黑黑,表面上有用,其实也没啥用,很明显,下载工具也一样会伪造
5、即时readfile下载,这个会有一点问题,如果东西不大,那是无所谓,如果东西很大,那问题就来了,不能断点续传,也不能使用下载工具。一旦下载失败就不得不重来
6、输入密码。。。象某些网站的提取码之类的
7、用组件,IIS上有现成的防盗链组件,直接可以使用,限制好特定的文件后缀名就行了
8、验证码,这个和输入密码下载有点类似,不过现在很多程序都会自动识别验证码,但下载工具好象还没有这个功能,可以尝试
9、通过邮件机制发送,而不是直接给出下载链接(但很有可能没有办法在网上显示相关内容)
10、无耻的生成BT种子,你们想怎么玩就怎么玩吧。
11、定期按规则更改文件名,或者是链接。。。但不知道那些下载工具是否会自动判断文件的MD5?或者在下载前先判断文件MD5?应该不可能,所以还是值得尝试一下,写个函数,对于下载链接的URL可以定时更换。
12、更改资源内容(这个是看别人的网站而来,意思是,如果提供了MP3下载,那么可以尝试定期不定期的修改MP3的TAG,如果是压缩文件,那么他们都有一个备注区,定期通过程序修改这些位置,可以造成文件大小不一样,对于下载软件来说可能就会被当成不同的文件)
对于11、12好象都有一个问题,主要是指迅雷,如果资源被收录了,但实际被删除了,可能会在一段时间内会被迅雷狂访问,变相的DDOS,曾经我有一台服务器就遇到过这种情况,在我之前,服务器的IP是做电影下载的,后来不搞了,我使用了这个IP,天天流量满,后来一查,发现所有的链接都是下载电影的,虽然没有资源了,但就是拼命的、不停的在连接,造成流量狂涨。

上面这些方法除了用组件比较完全和相对会比较成功一点之外,其他的都难说啊。。。

随便谈谈而己,也不奢求一定能够有用

Tags: 防盗连

惊心动魄的SQL BUG

刚才打开google reader的时候,突然看到一篇文章,让俺大吃一惊呀。详细内容如下:

原文网址:http://www.cnblogs.com/xinerzhui/archive/2008/07/30/1256648.html
  1.  请谨慎注意这一微软SQLBug  
  2. 刚来博客园,有什么不对,需要改进的地方,欢迎各位同道指出来,谢谢。  
  3. 今天在使用数据库时出现意外操作,将一张表的数据删除了。仔细查看SQL语句,发现问题。将问题类推到Northwind中。我们使用两个表,Employees和Products  
  4. SQL语句如下:  
  5. select * from Products where CategoryID in (select CategoryID from Employees)  
  6. 不看表结构是看不出什么问题的,不清楚的看一下表结构。执行上面的SQL语句,你将能看到所有的产品记录。  
  7. 当你执行上面语句的"select CategoryID from Employees",将会提示一个错误提示:  
  8. 消息 207,级别 16,状态 3,第 1 行  
  9. 列名 'CategoryID' 无效。  
  10. 表Employees中根本就没有CategoryID列,而微软忽略了括号中的错误,执行前面的语句。如果是应用在删除,更新,那后果将是不可现象的。我曾为此付出了代价。  
  11. 这个应该就是微软SQL的BUG吧,我们需要特别注意。  
  12. 在SQL2000企业管理器,SQL2000的查询分析器,SQL2005的Management Studio Express中均有此Bug。   

 

然后有人回复为:

#2楼 2008-07-30 17:21 | 熊呜呜
我在Sql2000上测试,确实有这个问题。  

#3楼 2008-07-30 17:27 | ocean  
  1. 有意思的问题,在我的management studio里面查询,也会有这个问题,要好好地研究一下。  

#7楼 117.22.68.*2008-07-30 17:45 | johnnyshieh [未注册用户]
  1. Microsoft SQL Server Management Studio 9.00.1399.00  
  2. 有楼主说的问题!  
  3. 确实应该注意一下。  
#9楼 2008-07-30 17:55 | 金色海洋(jyk)
  1. 看了表结构才知道,Employees 表里面没有 CategoryID字段。为什么不报错呢。错误被吃掉了。  
  2.   
  3. select * from Products where CategoryID in (select CategoryID from Employees)  
  4.   
  5. select * from Products where CategoryID in (select EmployeeID from Employees)  
  6.   
  7. 我比较了一下这两个语句的执行计划,不完全一样。建议lz分析一下执行计划。  
  8. 因为我还不能完全看懂执行计划。只能看出来两个执行计划是不一样的。呵呵。  
在MYSQL里没有试会不会遇到这种情况,我用navicat试是没有这种情况的。不知道其他的会不会有。

联想起以前写CRUD之类的东西时候,在过滤条件时,自动将空值直接unset掉,然后再拼成SQL,后来被BOBBY严厉批评了一下,确实,查询的时候感觉不出有什么问题,可如果是在UPDATE或者是DELETE的时候呢?本来是有条件的,可突然被unset掉成为没有条件了,那岂不是很恐怖?

借这个机会再次提醒自己,细心、周全、小心

 

Tags: mssql, sqlserver, microsoft, sql, bug

对膘叔的文章感兴趣的朋友可以使用JS调用功能

<script type="text/javascript" charset="utf-8" src="http://www.neatcn.com/js.php?view=article&cids=1&titlenum=10&titlelimit=50&newwindow=1&cname=0&author=0&orderby=dateline&dateline=0&articleinfo=0"></script>

一一分析路径。。。
view=article&cids=1&titlenum=10&titlelimit=50&newwindow=1&cname=0&author=0&orderby=dateline&dateline=0&articleinfo=0

以上代码表示:

view = article  调用文章
cids=1 分类ID为1,如果没有cids,则代表调用所有分类
titlenum=10 显示为10条
titlelimit=50  标题截取字数为50
newwindow=1 表示是否开新窗:1为开新窗0为不开
cname=0 表示显示文章所在分类:1为显示,0为不显示
author=0 是否显示作者姓名,1为显示,0为不显示
orderby=dateline 表示文章按什么类型排序>> dateline:文章发表的时间 ,views:浏览次数最多的文章,comments:评论次数最多的文章
dateline=0 是否显示文章发表时间:1为显示,0为不显示
articleinfo=0 是否显示文章数据包括浏览次数和评论次数,1为显示,0为不显示

黑黑,尝试一下吧。,。。

Tags: js, 调用, 文章, 分类

强烈推荐google reader

之所以会突然间提起这个也是有历史原因的,以前收藏别人的网站(指RSS),都是用的greatnews,而且也用了有两年之久,之后也使用过很多客户端软件,什么周伯通啦之类的,包括一些特定的客户端也用了不少,象foxmail,maxthon等,但最后还是坚持 使用了GreatNews。

可是,为什么我现在又推荐google reader了呢?这当然也有原因的,最初greatnews的时候并没有想过我会有两台电脑。也没有想过会有三台,四台这样的情况,因此一个greatnews我就完全足够了。然而却往往事与愿违,在单位的时候、在家的时候、出门在外的时候都有可能会关注这些收藏的网址,怎么办?客户端软件的局限性就出来了。

如果我每台机器都装一个,那么势必我每条新闻都要确认多次我是否读过,这样的人生活着还有什么意义?于是想到了在线阅读。。。在线阅读,当然要首选网络最快的了,哪个网站网络最快?毫无疑问,google打倒了几乎所有的对手。需要其他选择吗?需要理由吗?那就再加一个理由,几乎所有的feed都支持google,其他一些在线阅读软件他敢这么保证吗?

而且,使用google reader我也不需要再重新注册了,因为我本来就有gmail。功能也不比网上那些在线阅读网站差,再配合上firefox的google reader监视插件,相当于我装了一个C/s客户端。这些都不是主要的,主要的是,我在一个地方mark feed is read之后,使用其他电脑的时候,我可以直接跳过这些,如果实在重要的,我还可以加星、加到我的共享,同时将我的共享网址发给别人的时候,他们也可以和我一样分享我认为有意义的东西,岂不美哉?

故此,推荐google reader,认为枪文也好,放屁也罢,这是我的选择,你可以不赞同也可以反对,但我不会改变,除非你有更好的理由来说服我。Over,黑黑

 

Tags: software, google, rss, reader, feed

用TIMESTAMP类型取代INT和DATETIME[转]

本文来自于MYSQL中文网,作者姓名:叶金荣
MAIL:imysql#imysql.cn
MSN:msn15268#imqun.com

原文网址:http://imysql.cn/2008_07_17_timestamp_vs_int_and_datetime

» 阅读全文

Tags: mysql, 优化