2007年8月18日,文化与修养

期末考试,一清华男生面对教授出的超难物理题,无从下手,于是径直走到讲台前,对监考的教授说,”您出的题,我实在答不出来,可是我出一个题,您也不一定答的出来。如果您答不出来我的问题,能不能给我100分?”
教授摸摸那已经没胡子的下巴,心想,就你――一个整天泡人大女生的清华呆子――能出多难的题,难得倒我?我可是得过诺奖的人儿了!遂答曰:”好!”

  清华男生娓娓道来:”什么事合法却不合理? 什么事合理却不合法?什么事既不合理也不合法? 括弧:这三件事有内在联系”

 教授实在想不出来,爽快的在白卷上打了100分,并问答案,清华男生说:”您既然已经打了分了,那我就告诉您吧。”

  “您82岁的老头子,却娶了一个28岁的年轻妻子,这,合法却不合理。”

  “您年轻漂亮的妻子,在外面又找了个年轻学生,这,合理却不合法。”

  教授这时已把一张黄脸气成青脸,气急败坏的说:”那你说,什么事既不合理也不合法?”

学生得意的说:”您刚才在您新娶的年轻妻子的年轻情人的白卷上打了一个满分,这件事,既不合理,也不合法。”

Tags:
2007年8月18日,文化与修养
有个老教授,决定做一个游戏,他拿出100元的钞票,交给他的课代表,让他组织同学们来一次拍卖,规定从0起步,大家可以每5元一个台阶加价,出最高价的人将得到这张100元的钞票(确定,是真钞)。不过,出次高价的人,尽管得不到钞票,但是却也必须按照他的报价来交钱。也就是说,最高价如果是x,那么,次高价者必须支付的money是x-5,不许耍赖皮的。

  
游戏规则确定,我们现在来做两个判断:
  
第一,如果是你来参加竞拍游戏,你愿意出的最高价是多少?请注意,这个价格应该是你的一个理性报价,好比一个投资计划,一旦确定了,临场就不能修改,就应该去执行的。你可以先凭感觉报出一个价格,再仔细计算一下,报出另外一个价格。但不管怎么说,你最终确定的价格,将是选项一。
  
第二,你估计,拍卖的最终结果是什么?为什么?
  
随着慢慢思考,我们能逐渐发现这个游戏存在的一个陷阱,就是对次高价者的规定,制约了拍卖的实际结果。它将不可避免地把一个纯粹的经济学话题导向一个行为学话题。而不管结果是什么,它都能彰显人类社会博弈过程中的种种理性与非理性,彰显投资过程中的不同心态。
  
  
第一个结果:最高报价是50元。
  
这是我看到这个题目后的第一反应。随后,我立即明白过来,我这是一种傻瓜做法。如果我真的出价50元,我是绝对不可能得到这张钞票的。为什么?因为这是一场拍卖,比我傻的人很少,比我聪明的人却多得是。当我报价50元的时候,一定有无数的聪明人会愿意出价55元以上,叫价声此起彼伏,价格扶摇直上,我不会成为最高的出价者,也不会成为次高的出价者。
  
但是,我为什么只愿意最高出到50元呢?因为这是一张100元的钞票啊。我出50元,次高者出45元,合计支付95元,可以净赚5元。我们俩的总回报大于总支出,社会福利增加,对全局有利,所以,结果是快乐大于痛苦。如果报价高一个台阶(55+50=105),则总付出大于总收入,损失5 元,社会福利减少,大家痛苦大于快乐。所以,理性社会不会去选择更高台阶,最终结果就是50元。
  
慢着!你出50元,得到100元,你当然快乐了,收益率100%嘛!奶奶的,老子出了45元,凭什么一分钱收获也没有?你以为老子是傻瓜啊!
  
对了,忘记你老兄了,别生气,咱们达成一个协议,我得到的钱分一点给你嘛,给你47元好吗,你最终付出45元,回报47元,净赚2元。我呢,付出50元,净得到53元,净赚3元,好不好啊?什么?不好?那这样吧,你净赚3元,我净赚2元,可以吧?还不行,那好,给你净赚4元,我净赚1元,如何。嘿嘿,好的,咱们皆大欢喜啦,嗷,嗷,嗷……
  
有人会嗤之以鼻,不屑一顾,对这个结果提出批评:不就是5元的差价利润吗?何必如此斤斤计较呢?再说了,这是公开拍卖,怎么可能出现你说的串通情况呢?
  
别介啊,我这是举个例子嘛。你可知道社会上的很多拍卖,不是以元为单位,而是以亿元、十亿元、甚至百亿元为单位的?如果这是一个百亿元的拍卖,获胜者有5百亿元的利润,你敢小瞧这个游戏吗?
  
假设,我很幸运地成为教授的课代表,我跟你串通起来,你得到400亿,我个人只得到100亿,我何乐而不为呢?我只是告诉了你一个消息,而且只是中间斡旋了一下,就能得到100亿,我不要太幸运嗷!
  
所以,会有第二个你想不到的结果:
  
第二个结果:内幕交易的最高报价10元。
  
聪明人看到上面的过程,就会恍然大悟:他妈的,原来是一个骗局啊,只要组织好了,大家赚那个老头儿的钱,好容易嗷!
  
在老头儿不出场的情况下,或者即便老家伙出场,我们也可以设计得让他不知道嘛!咱们弟兄俩策划一下,你出5元,我出10元,然后你就不出价了,最后,我们就拿合计15元得到这100元的钞票,净赚85元,然后咱们兄弟俩就地分赃,怎么分都可以啊!
  
注意,不能让别人知道了,保密,坚决保密啊。好的!
  
不幸,有的苍蝇也闻到味道了?怎么办啊?算了,拉他们进来做个样子,免得老头儿发现了。只不过,咱们要分一点好处给这些苍蝇啊,免得他们回去跟老头儿汇报。什么,有的王八蛋嫌少?你的汉阳造哪里去了,指着他的脑袋,问问他想不想活了,问问他老婆孩子父母兄弟想不想活了。怎么样,摆平了吧,这就是权力和金钱的力量啊,好,拍卖开始!
  
再慢着,你也发现这个问题了?咱们出价5元,就不再出高价了,最后用这5元得到100元。嘿嘿,兄弟,你真是太有才了!不过,不行啊,如今这世道,媒体啊,舆论啊,大众啊,都盯着呢,人家会质疑的啦。再说了,老头儿还没那么糊涂,他会怀疑的啦,装装样子吧,忍痛多付出一点好了。
  
现在开始拍卖,好,有人出5元了,还有人出价吗?5元第一次,5元第二次,5元第三次,再没有出价要成交了,我要敲锤子了!好,10元,有人出价10元了,真是竞争激烈啊,有人出价10元了,价格提高了100%,高,实在是高!还有人出价更高吗?10元第一次,10元第二次,10元第三次,我要敲锤子了,还有人出价更高吗?哦,没有了,你们大家看啊,我要敲锤子了,公开拍卖,公平成交,10元!嗷嗷嗷,15元买了100元的东西,好便宜,爽歪歪,赚翻了!嗷,嗷,嗷!嗷,嗷,啊嗷……
  
对了,以前很多所谓的拍卖,就是通过这种方式完成交易的。如今,绝大多数拍卖都要求是公开的了。越公开,参与的人越多,私下达成统一协议的概率越低,拍卖的结果越能接近市场真实。而最最公开的、参与者最多的市场就是股市!
  
第三个结果:理性者的最高报价100元。
  
当市场公开的时侯,无法通过内幕交易达成低价,50元的最高报价很快会被超越,每个聪明人都会争先恐后地加价,使得成交价扶摇直上,冲到 100元。在这个过程中,每个人都会逐渐明白:这是一张真实的钞票,它的价值是100元,我只要出价100元,就可以获得100元,没有任何损失,绝对不会亏。此时,得到100元的理性判断压倒了一切,大家慢慢忘记了次高出价者必须支付他的报价的规则,风险显得并不是那么明显,以至于可以忽略不计了。
  
为什么说是每个人都会“逐渐明白”呢?因为课代表宣布结果的时候,总有一些人智商比较高,能立即判断出结果来。还有一些人在交头接耳没有听清楚,要跟别人打听才明白。还有的智商更高的人尽管听明白了,但不敢相信拍卖会的现场,怎么从5元开始起叫啊,应该开盘就50元吗,这里面是不是有什么陷阱啊?慢慢的,拍卖场的气氛升温了,明白人越来越多了,大家觉得没有陷阱了,大家觉得自己就是那个聪明人了,参与拍卖的人才会逐渐多起来,最后促使价格迅速达到100 元。
 
嗷!100元!最高价者得,一个皆大欢喜的局面,你们所有买进的冲动总算结束了!交钱吧!!
  
慢慢慢,还有人出价?怎么可能?!
  
第四个结果:投机者的最高报价200元。
  
哦,明白了,出价100元的小子啊,你以为自己不赚不赔,参加了一场游戏就拉倒了?可是,出价次高的人要支付95元而无任何所得啊!你以为他是傻瓜吗? NO!以为别人是傻瓜的人才是真正的傻瓜!他可以报价105元啊,这样,他实际的损失就只有5元了,相比95元的损失,他可以减少90元呢!
  
啊,还有这种拍卖法!
  
最高出价100元的人惊呆了,怎么以前没有想到这个问题呢?你出105元,老子如果不加价,那不是白白损失100元吗?他妈的,这可怎么办啊!犹豫,后悔,反思,徘徊,100和105之间出现短暂的停滞,原来的热火朝天的局面突然冷却下来,谁也不敢再贸然加价了,都幸灾乐祸地看着出价105 元和100元的两个傻瓜蛋儿,看他们怎么收场,有的人还哈哈大笑起来,有的人嘲笑起来,有的人拍掌高叫,有的人吹口哨,有的人起哄,嗷,嗷,嗷!拍卖场乱作一团。
  
此时,出价100元的傻瓜脑门流汗,进退维谷。他的一众参谋,股评家,经济学家,心理学家都拿主意,他自己也逐渐明白过来,好像没有别的选择了,加价吧。增加一点,损失就少一点啊。
  
终于,他报价110元。此时,轮到报价105元的家伙深思了。他的选择跟他的对手没什么区别。理性的结果是他报出了115元。
  
拍卖场的沉寂逐渐打破,价格慢慢上升到130元。此时,拍卖场逐渐热闹起来,不断有新人加入进来,他们了解情况,了解规则,而股评家慢慢发现一个题材:尽管这张钞票价值100元,但是,由于参加了这次拍卖,它注定会成为文物,具有了收藏价值!一旦具有收藏价值,也许10年后能价值1000元未可知也!
  
我的天啊,真的是这样啊!
  
于是,一个新的傻瓜上场了,他喊出了135元的价格!举座皆惊!出价125元的人长吁一口气,他妈的,老子总算解脱了,你们俩玩去吧!嗷嗷嗷!!出价 130元的人还没有来得及高兴,就发现自己这个最高价变成了次高价,他已经没有选择了,只是对手换了而已。当拍卖师催促的时侯,他只好举起号牌,要叫 140元了。
  
慢着!又一个新的竞争者发现了钞票的收藏价值,他喊出了140元的价格。
  
140元对135元,两个新的竞争者出现了!
  
145元,又一个新的竞争者出现了!越来越多的新竞争者出现了,大家都发现了它的收藏价值!嗷嗷嗷,拍卖场又热闹起来,新的竞争出现,价格继续上扬,不断有新人进场,曾经在125元停下的人开始怀疑自己的错误,他终于在180元的价格重新举牌,但新的竞争者立即超过了他。到195元的时候,在 160元停止叫价的人也重新加入进来,举牌,200元!
  
轰的一声,象炸弹爆炸的声音,拍卖场又安静下来。那个叫价200元的家伙立即发现了自己的错误,傻瓜啊,流氓啊,无耻啊,混蛋啊,老子怎么这么笨啊,老子怎么这么冲动啊,你们这些王八蛋怎么这么无耻地哄抬物价啊,上帝啊,出来救救我吧,神仙姐姐快显灵啊,你如果救了我,我给你重塑金身啊。你,你,你,笑什么!喊什么!老子杀了你们!嗷嗷嗷嗷嗷嗷!
  
混乱,一片混乱,叫价者,老头儿,课代表,都陷入迷茫,都不知所措,他们怕出现混乱,怕场面失控,他们开始协调,让每个人都明白,这个还是有收藏价值的,而且,据说,可能后面还有好消息,可能真正的成交者不必支付那么多钱,可能,这张钞票会被外资以更高价格收购,总之,很多很多可能性啦~
  
终于,一个怯怯的声音打破了混乱的局面:205元。
  
第五个结果:搏傻者的最高报价大于200元。
  
叫价200元的人已经预见到了自己的悲惨结局,但是,叫价195元的人何尝没有意识到这一点?当满场静寂的时候,他也清楚的意识到,自己的损失是必然的,只不过,他不知道自己能够承受到什么价格才认输。
  
以后的游戏变得索然无趣。现在,早已经不是为了赚取利润,也不是为了减少损失,而变成比耐心,比家底。尽管也许还会重复100-200元叫价的过程,有新人加盟进来,但到最后,一定要有一个人再也承受不起更高的价格,他只能成为次高价获得者,同时宣布破产。而最高价获得者尽管减少了100元的损失,但也离倾家荡产差不了多远了。破产者家破人亡,接近破产的何尝不是如此!参与拍卖的其他人则成为看客,回家后难免受到家人一番斥责,自己也暗自说侥幸,有的人则开始为自己吹嘘,说自己在190元的时侯果断叫停,没有继续,好险啊,还有人嘲笑他,老子245元加入进去了,结果,有人冲进来,250元结果去,老子比你胆子大多了!
  
此时,只有一个人在偷偷地乐,没错,老头儿,你们怎么把他忘记了?老教授拿着巨额的钞票,嘿嘿,你报价250元才倒,我的收获495元啊。 100元的钞票,卖到了495元,好爽,好爽嗷。老头儿拿出5元给了课代表,作为他的酬谢,同时告诉他,由于组织拍卖会出色,留校的名额就给你了!课代表趾高气扬,出来炫耀。老教授拿着多得的钱,出国旅游去了,10天10夜南极游,才花了100元嗷,好舒服嗷。办个移民吧,免得将来被破产的家伙追杀。对了,再捐出100元来吧,买个名誉嘛,社会活动家,慈善家,知名教授学者,没事了,再写本书,书名是《我是怎样一个小时获利400%的》,嗷,嗷,嗷…… 好惬意的生活啊……嗷,嗷,嗷……
  
写在后面的话
  
昨天晚上读书,读到一个钞票拍卖的博弈故事,引申开来,突然发现这个过程跟股市很象,于是,创作此文。钞票的本来价值就是100元,出最高价的人得,次高价者必须支付成本而无所得。你可以把次高价者付出的代价看成交易成本,比如,佣金,印花税等。在一个理性社会中,在一个效率市场中,当信息足够透明的时侯,合理的最高出价应该是低于50元。这样,最高价加上交易成本,低于100元,而获得100元。这个过程,在股市中,就是绝对价值投资时期,好比中国股市的1000点到1500点。此时的买进,不管什么人,都是绝对没有风险的、绝对有收益的。当时,上海股市极限日成交不过500亿。

但是,总是有人忽略交易成本而去追逐实际价格,这会使得单一买方支付的价格等于100元,也就是价格与价值相等。但是,市场整体为追逐这个价值,要付出巨大的交易成本。比如现在,上市公司一年带给流通股东的利润不过4000亿,而流通股东持续交易每年支付的税费就超过了4000亿,这跟最高出价得钞票、次高出价白交钱有什么区别呢?但是,即便如此,叫价到100元的时侯,持有钞票的人总算有投资价值,所以他还比较心安理得。这个过程,好比中国股市的 1500-3000点。你可以看看,当时涨到3000点的过程,并没有太费劲。3000点的极限日成交1000亿,交投显著增加,成本显著增大。
  
不过,到3000点后,股市盘整了比较长的时间。此时,投资价值相对明朗,由于交易成本的缘故,大家交投并不活跃,上海的日成交一度回到 500亿。但是,随着新进股民的增加,大家发现了股票投资价值之外的其它种种题材和概念,进场的搏傻者越来越多,股市终于突破3000点大关,直奔 4300点。4300点的位置,就好比钞票炒到200元,投资价值基本没有了,收藏价值也得到充分挖掘,上海的极限成交近3000亿,市场疯狂到极点以至于不得不迎来了5.30的组合拳。再看看5.30之后一些人的表现,多么象那个最先喊价200元的人的狼狈相!
  
只不过,4300点附近买进的人很少能想到还会再回来,还有更高价格。此时,只剩下两个高手在搏杀:基金和散户。大家都忽略交易成本,都忽略潜在风险,都想多赚一点弥补损失,也都怕自己就是次高价者。于是,股市在颤颤巍巍中走高到4300点以上。以后的过程,其实没有多少兴趣。谁是最后一棒的持有人意义并不大,谁能参与进去最后全身而退也没有多少意义,最后究竟谁来买单,谁来收场,都不难想象。
  
对了,叫价10元是什么意思?内幕交易啊,什么首次发行新股,定向增发新股,不都是需要关系的嘛,能在10元拿到的,只能是有关系的人。随着公开化和市场化,发行中的利润也会逐渐减少的。
  
最后,究竟谁是老教授呢?大股东啊,资本家啊。他们有的是原始股,你想要多少都可以。100元的原始股,本来只能卖100元,他们其实已经赚了(实际所得 195元)。但是,市场的理性和非理性会最终把股票炒到250元,大股东收回495元,赚死了。而且,当你炒到250的时候,老头儿的股票,要多少有多少,全都给你!但是,大家的规则是事先定好的啊,你亏损了再来提意见又有什么用呢?人家调控你有意见,人家不调控,任你去涨,最后总不能还怪罪人家吧?所以,大家都愿意当老头儿,搞个企业上市,原始股拿出来卖,看着别人来竞相出高价,那个滋味,真的很不错哦。
  
噢,原来如此!

Tags:
2007年8月18日,Computer
如何更好的达到防范黑客攻击,本人提一下个人意见!第一,免费程序不要真的就免费用,既然你可以共享原码,那么攻击者一样可以分析代码。如果在细节上注意防范,那样你站点的安全性就大大的提高了。即使出现了SQL Injection这样的漏洞,攻击者也不可能马上拿下你的站点。

 由于ASP的方便易用,越来越多的网站后台程序都使用ASP脚本语言。但是, 由于ASP本身存在一些安全漏洞,稍不小心就会给黑客提供可乘之机。事实上,安全不仅是网管的事,编程人员也必须在某些安全细节上注意,养成良好的安全习惯,否则会给自己的网站带来巨大的安全隐患。目前,大多数网站上的ASP程序有这样那样的安全漏洞,但如果编写程序的时候注意一点的话,还是可以避免的。
 1、用户名与口令被破解
 攻击原理:用户名与口令,往往是黑客们最感兴趣的东西,如果被通过某种方式看到源代码,后果是严重的。
 防范技巧:涉及用户名与口令的程序最好封装在服务器端,尽量少在ASP文件里出现,涉及与数据库连接的用户名与口令应给予最小的权限。出现次数多的用户名与口令可以写在一个位置比较隐蔽的包含文件中。如果涉及与数据库连接,在理想状态下只给它以执行存储过程的权限,千万不要直接给予该用户修改、插入、删除记录的权限。
 2、验证被绕过
 攻击原理:现在需要经过验证的ASP程序大多是在页面头部加一个判断语句,但这还不够,有可能被黑客绕过验证直接进入。
 防范技巧:需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。
  3、inc文件泄露问题
 攻击原理:当存在ASP的主页正在制作且没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象。如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中查看到数据库地点和结构的细节,并以此揭示完整的源代码。
 防范技巧:程序员应该在网页发布前对它进行彻底的调试;安全专家则需要加固ASP文件以便外部的用户不能看到它们。首先对.inc文件内容进行加密,其次也可以使用.asp文件代替.inc文件使用户无法从浏览器直接观看文件的源代码。inc文件的文件名不要使用系统默认的或者有特殊含义容易被用户猜测到的名称,尽量使用无规则的英文字母。
 4、自动备份被下载
 攻击原理:在有些编辑ASP程序的工具中,当创建或者修改一个ASP文件时,编辑器自动创建一个备份文件,比如:UltraEdit就会备份一个.bak文件,如你创建或者修改了some.asp,编辑器会自动生成一个叫some.asp.bak文件,如果你没有删除这个bak文件,攻击者可以直接下载some.asp.bak文件,这样some.asp的源程序就会被下载。
 防范技巧:上传程序之前要仔细检查,删除不必要的文档。对以BAK为后缀的文件要特别小心。
 5、特殊字符
 攻击原理:输入框是黑客利用的一个目标,他们可以通过输入脚本语言等对用户客户端造成损坏;如果该输入框涉及数据查询,他们会利用特殊查询语句,得到更多的数据库数据,甚至表的全部。因此必须对输入框进行过滤。但如果为了提高效率仅在客户端进行输入合法性检查,仍有可能被绕过。
 防范技巧:在处理类似留言板、BBS等输入框的ASP程序中,最好屏蔽掉HTML、JavaScript、VBScript语句,如无特殊要求,可以限定只允许输入字母与数字,屏蔽掉特殊字符。同时对输入字符的长度进行限制。而且不但要在客户端进行输入合法性检查,同时要在服务器端程序中进行类似检查。

6、数据库下载漏洞
 攻击原理:在用Access做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的Access数据库的路径和数据库名称,那么他也能够下载这个Access数据库文件,这是非常危险的。
 防范技巧:
 (1)为你的数据库文件名称起个复杂的非常规的名字,并把它放在几层目录下。所谓 “非常规”, 打个比方说,比如有个数据库要保存的是有关书籍的信息, 可不要给它起个“book.mdb”的名字,而要起个怪怪的名称,比如d34ksfslf.mdb, 并把它放在如./kdslf/i44/studi/的几层目录下,这样黑客要想通过猜的方式得到你的Access数据库文件就难上加难了。
 (2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如:
  DBPath = Server.MapPath(“cmddb.mdb”)
  conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=” & DBPath
 假如万一给人拿到了源程序,你的Access数据库的名字就一览无余了。因此建议你在ODBC里设置数据源,再在程序中这样写:
  conn.open“shujiyuan”
 (3)使用Access来为数据库文件编码及加密。首先在“工具→安全→加密/解密数据库”中选取数据库(如:employer.mdb),然后按确定,接着会出现“数据库加密后另存为”的窗口,可存为:“employer1.mdb”。
 要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。
 接下来我们为数据库加密,首先打开经过编码了的 employer1.mdb,在打开时,选择“独占”方式。然后选取功能表的“工具→安全→设置数据库密码”,接着输入密码即可。这样即使他人得到了employer1.mdb文件,没有密码他也是无法看到 employer1.mdb中的内容。


7、防范远程注入攻击

  这类攻击在以前应该是比较常见的攻击方式,比如POST攻击,攻击者可以随便的改变要提交的数据值已达到攻击目的.又如:COOKIES 的伪造,这一点更值得引起程序编写者或站长的注意,不要使用COOKIES来做为用户验证的方式,否则你和把钥匙留给贼是同一个道理.

  比如:

  If trim(Request. cookies ("uname"))="fqy" and Request.cookies("upwd") =”fqy#e3i5.com” then
  ……..more………
  End if

  我想各位站长或者是喜好写程序的朋友千万别出这类错误,真的是不可饶恕.伪造COOKIES 都多少年了,你还用这样的就不能怪别人跑你的密码.涉及到用户密码或者是用户登陆时,你最好使用session 它才是最安全的.如果要使用COOKIES就在你的COOKIES上多加一个信息,SessionID,它的随机值是64位的,要猜解它,不可能.例:

  if not (rs.BOF or rs.eof) then
  login="true"
  Session("username"&sessionID) = Username
  Session("password"& sessionID) = Password
  ‘Response.cookies(“username”)= Username
  ‘Response.cookies(“Password”)= Password

  下面我们来谈谈如何防范远程注入攻击,一般的攻击都是将单表提交文件拖到本地,将Form ACTION=”chk.asp” 指向你服务器中处理数据的文件即可.如果你全部的数据过滤都在单表页上,那么恭喜你,你将已经被脚本攻击了.

  怎么才能制止这样的远程攻击?好办,请看代码如下: 程序体(9)

  <%
  server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
  server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
  if mid(server_v1,8,len(server_v2))<>server_v2 then
  response.write "<br><br><center>"
  response.write " "
  response.write "你提交的路径有误,禁止从站点外部提交数据请不要乱改参数!"
  response.write "

"
  response.end
  end if
  %>

‘个人感觉上面的代码过滤不是很好,有一些外部提交竟然还能堂堂正正的进来,于是再写一个.

  ‘这个是过滤效果很好,建议使用.

  if instr(request.servervariables("http_referer"),"http://"&request....") )<1 then response.write "处理 URL 时服务器上出错。
如果您是在用任何手段攻击服务器,那你应该庆幸,你的所有操作已经被服务器记录,我们会第一时间通知公安局与国家安全部门来调查你的IP. "
  response.end
  end if

  程序体(9)

  本以为这样就万事大吉了,在表格页上加一些限制,比如maxlength啦,等等..但天公就是那么不作美,你越怕什么他越来什么.你别忘了,攻击者可以突破sql注入攻击时输入框长度的限制.写一个SOCKET程序改变HTTP_REFERER?我不会。网上发表了这样一篇文章:

  ------------len.reg-----------------
  Windows Registry Editor Version 5.00
  [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\扩展(&E)]
  @="C:\Documents and Settings\Administrator\桌面\len.htm"
  "contexts"=dword:00000004
  -----------end----------------------
  -----------len.htm------------------
  
  ----------end-----------------------

  用法:先把len.reg导入注册表(注意文件路径)
  然后把len.htm拷到注册表中指定的地方.

  打开网页,光标放在要改变长度的输入框上点右键,看多了一个叫扩展的选项了吧

  单击搞定! 后记:同样的也就可以对付那些限制输入内容的脚本了.

  怎么办?我们的限制被饶过了,所有的努力都白费了?不,举起你de键盘,说不。让我们继续回到脚本字符的过滤吧,他们所进行的注入无非就是进行脚本攻击。我们把所有的精力全都用到ACTION以后的页面吧,在chk.asp页中,我们将非法的字符全部过滤掉,结果如何?我们只在前面虚晃一枪,叫他们去改注册表吧,当他们改完才会发现,他们所做的都是那么的徒劳。

 8、ASP木马

  已经讲到这里了,再提醒各位论坛站长一句,小心你们的文件上传:为什么论坛程序被攻破后主机也随之被攻击者占据。原因就在……对!ASP木马!一个绝对可恶的东西。病毒么?非也.把个文件随便放到你论坛的程序中,您老找去吧。不吐血才怪哦。如何才能防止ASP木马被上传到服务器呢?方法很简单,如果你的论坛支持文件上传,请设定好你要上传的文件格式,我不赞成使用可更改的文件格式,直接从程序上锁定,只有图象文件格式,和压缩文件就完全可以,多给自己留点方便也就多给攻击者留点方便。怎么判断格式,我这里收集了一个,也改出了一个,大家可以看一下:

  程序体(10)

  '判断文件类型是否合格
  Private Function CheckFileExt (fileEXT)
  dim Forumupload
  Forumupload="gif,jpg,bmp,jpeg"
  Forumupload=split(Forumupload,",")
  for i=0 to ubound(Forumupload)
  if lcase(fileEXT)=lcase(trim(Forumupload(i))) then
  CheckFileExt=true
  exit Function
  else
  CheckFileExt=false
  end if
  next
  End Function
  ‘验证文件内容的合法性

set MyFile = server.CreateObject ("Scripting.FileSystemObject")
  set MyText = MyFile.OpenTextFile (sFile, 1) ' 读取文本文件
  sTextAll = lcase(MyText.ReadAll): MyText.close
  '判断用户文件中的危险操作
  sStr ="8 .getfolder .createfolder .deletefolder .createdirectory 
  .deletedirectory"
  sStr = sStr & " .saveas wscript.shell script.encode"
  sNoString = split(sStr," ")
  for i = 1 to sNoString(0)
  if instr(sTextAll, sNoString(i)) <> 0 then
  sFile = Upl.Path & sFileSave: fs.DeleteFile sFile
  Response.write "<center><br><big>"& sFileSave &"文件中含有与操作目录等有关的命令"&_
  "<br><font color=red>"& mid(sNoString(i),2) &"</font>,为了安全原因,<b>不能上传。<b>"&_"</big></center></html>"
  Response.end
  end if
  next

  程序体(10)

  把他们加到你的上传程序里做一次验证,那么你的上传程序安全性将会大大提高.

  什么?你还不放心?拿出杀手锏,请你的虚拟主机服务商来帮忙吧。登陆到服务器,将PROG ID 中的"shell.application"项和"shell.application.1"项改名或删除。再将”WSCRIPT.SHELL”项和”WSCRIPT.SHELL.1”这两项都要改名或删除。呵呵,我可以大胆的说,国内可能近半以上的虚拟主机都没改过。只能庆幸你们的用户很合作,否则……我删,我删,我删删删……

2007年8月18日,Computer
做网站现在似乎是每个企业或团队都必做的一项工作了——不管你所在的行业是不是和互联网相关。我平均每周都会接到一两个朋友的电话问:我们要做一个网站,该用什么技术,PHP、Java还是.NET?我们该从哪里请开发人员?我们现在开发的网站总是有bug,该怎么办?作为一个前技术人员以及现任互联网从业人员,我来说说自己的经验吧。

多年的网站工作告诉我一个道理:网站虽然看似简单,但是一定要请正确的人来做。国内的开发人员普遍经验不足,一个做过2 年开发的人,就可能以为自己已经很牛,要一个不低的价格,并最终给你一个很糟糕的结果。反过来,如果你找对了人——哪怕只有一个人,用对了思路,网站其实很简单。

不再罗嗦,下面直接了当的给大家一些做网站的实用建议:

1、尽量使用现成的系统,而不是自主开发。对于一般的企业网站、电子商务网站,强烈建议不做开发。如果是企业网站,找一个现成的内容管理系统(CMS)系统就可以了。在国内的CMS中,SupeSite是一个不错的选择;电子商务网站,直接用ECSHOP就可以了;Web2.0网站,可以用X-Space;论坛,Discuz!是首选。很多人会问,这些现成的系统是不是功能会有很多限制,性能是不是足够好——这些都是不必要的担心。一方面,这些系统都有不错的可定制性,只要找一个对HTML/CSS熟练,并稍有php程序基础的人,完全可以根据你的要求搭建出一个不错的网站。如果你连这样的一个人都找不到的话,那就用wordpress给你的企业搭建一个博客系统吧,既时尚又实用。

2、LOGO、美工的工作可以外包给威客网站。我是K68.cn的老用户了,在上面下过的单子应该不少于5次了吧。虽然不能说每次都100%满意,但从性价比来说,K68给的结果是无可挑剔的。你只要花几百块钱,就可以获得十几个不错的创意,然后你从中挑出你最认可的一款并让设计师美化成最终的结果就可以了。除非你的团队本来就有不错的美工,或者你愿意多花几十倍的钱请一个真正专业的设计公司,否则的话,K68是一个很好的选择。

3、只要你能请到相应的开发人员,用什么技术开发其实无所谓。php,java,.NET,哪个性能更好,这是我经常被问到的一个问题。相信很多用户作为互联网的使用者,最痛苦的事情就是网页速度非常慢。所以当大家自己做网站的时候,第一个想到的自然是“我的网站可不要那么慢才好”。事实上,虽然不同的技术在性能上肯定会有差别,但是这种差别一般要等你的日PV达到数百万的时候才能体现出来。而大多数网站的速度慢的原因还是程序员自身代码的问题所致。再优秀的开发语言,初级程序员的一个死循环一样能轻而易举的让你的服务器瘫痪——相信我,这是有实际案例的。所以,在网站开发的初期,你最需要担心的绝对不是哪种语言更好,而是你能请到哪种语言的优秀开发人员。

4、产品经理非常重要。网站的功能、布局、流程,或者用现在时髦的名字——user experience,在很大程度要决定于产品经理的能力。这个人最好懂点技术,而更重要的是对用户有深刻的理解,对细节有偏执的追求。很多成功的网站, CEO自己就是产品经理。开发工作可以外包,而你的产品经理一定不能外包。因为一个好的网站一定是需要不断完善的,产品经理是一个长期工作。

如果将网站开发的原则做一个简单的总结,那就是:用最少的人、写最少的代码、快速的发布、持续的改进。后面两句其实来源与Google的 “Quick launch, fast iteration”;而前两句是结合中国国情——对一般公司而言,如果运气不错,你可能找到两三个不错的开发人员,但如果你做网站的前提是一下能找到 n>5的优秀开发人员,你的第一个网站很可能永远都发布不了了。
Tags: ,
2007年8月18日,seo
搜索引擎优化(SEO)
搜寻引擎最佳化(Search Engine Optimization,简称SEO),与搜索引擎定位(Search Engine Positioning)和搜索引擎排名(Search Engine Ranking)是同一种工作,是一种利用搜索引擎的搜索规则来提高目的网站在有关搜索引擎内的提名的方式。由于不少研究发现,搜索引擎的用户往往只会留意搜索结果最开首的几项条目,所以不少商业网站都希望透过各种形式来干扰搜索引击的排序。当中尤以各种依靠广告维生的网站为甚。

所谓“针对搜寻引擎作最佳化的处理”,是指为了要让网站更容易被搜寻引擎接受。搜寻引擎会将网站彼此间的内容做一些相关性的资料比对。 然后再由浏览器将这些内容以最快速且接近最完整的方式,呈现给搜寻者。

搜索引擎优化对于任何一家网站来说,要想在网站推广中取得成功,搜索引擎优化都是至为关键的一项任务。同时,随着搜索引擎不断变换它们的排名算法规则,每次算法上的改变都会让一些排名很好的网站在一夜之间名落孙山,而失去排名的直接后果就是失去了网站固有的可观访问量。所以每次搜索引擎算法的改变都会在网站之中引起不小的骚动和焦虑。我们可以说,搜索引擎优化也成了一个愈来愈复杂的任务。


早期搜寻引擎
搜寻引擎发韧于90年代中期。此时第一代搜寻引擎开始对因特网分门别类。一开始,所有网站员得做的事只有提交所属网站到各家搜寻引擎。这些引擎跑一些蜘蛛机器人(spider)──根据超链结爬过网站的程序──并且储存所找到的资料。搜寻引擎根据标题后处理这些资讯,并且根据这些分析结果提供服务。随著在线文件数目日积月累,越来越多网站员意识到基本搜寻 (organic search, 亦翻为随机搜寻 *注一) 条目的重要性,所以较普及的搜寻引擎公司开始整理他们的列表,以显示根据最洽当适合的网页为优先。搜寻引擎与网站员的战争就此开始,并延续至今。

一开始搜寻引擎是被网站员本身牵著走的。早期版本的搜寻算法有赖于网站员提供资讯,如属哪类、关键字的汇签(meta tag)。当某些网站员开始滥用汇签,造成该网页排名与连结无关时,搜寻引擎开始舍弃汇签并发展更复杂的排名算法。由于数繁不及备载,仅列举数个分析目标如下:

在标题签里的文字,如

引擎


域名
统一资源定位符下属的目录与档名关键字密度
关键字接近度,如 '软盘、软碟' '硬盘、硬盘'
图形连结的 Alt 属性

由于这些都还在网站员的眼皮下打滚,搜寻引擎陆陆续续碰到诸多滥用与操纵排名等难题。为了要提供较好的结果给使用者,搜寻引擎必须调适到让他们的搜索结果表现出最适当的结果,而非某些不道德的网络员产生的、只有塞满关键字的无用网页。由此,新种类的搜寻引擎应运而生。

注一:随机搜寻实在是误翻,与原始所指相差太远。

基本搜寻引擎
Google 由两名在斯坦福大学的博士生佩吉 (Larry Page) 和布林 (Sergey Brin) 开始。他们带来了一个给网页评估的新概念。这个概念, 称网页级别 (PageRank), 是从Google 算法[1]重要的开端 。网页级别十分倚赖导入链结 (incoming link) ,并利用这种每个导入某网页的链结相当于给该网页价值投一票的理论建立起逻辑系统。越多导入链结意味著该网页越有“价值”。而每个导入链结本身价值直接根据该链结从何而来的网页级别,以及相反的该页导出链结 (outgoing link) 。

在网页级别帮助下,Google 在服务相关的结果上证明它相当优异。Google 成为了最普遍和最成功的搜索引擎。由于网页级别度量了站点外因子, Google 感到它会比页内因子难以动手脚。

然而道高一呎魔高一丈。网站员们已经开发出对付Inktomi 搜索引擎的链结操作工具和计划。这些方法证明对Google 算法一样管用。许多站集中于交换、买卖大量链接。随著‘网站员寻求获取链结只单单要影响Google送更多流量给该站,而不管是否对站点访客有用否’这种行为增加,网页级别对原始算法的信赖度渐渐被破坏了。

此时,是Google 和其它查寻引擎对广大范围的站外因子仔细检视的时候。开发更加聪明的算法有其他原因。因特网已经膨胀到拥有非技术的广大族群。他们经常无法使用先进的提问技术来取的资讯;而且他们得面对比起发展早期更庞大资料、更复杂的索引。搜寻引擎必须开发具备预测性、语义性、语言性和启发性算法。

目前,网页级别的缩小版仍然被显示在Google 工具条上,不过网页级别只不过是Google 考虑在网页分级时超过100 个因素里中的一个。

今天,大多数搜寻引擎对它们的如何评等的算法保持秘密。搜索引擎也许使用上百因素在排列目录;每个因素本身和因素所占比重可能不断的在改变。

大部分当代搜寻引擎优化的思路──哪些有效、哪些没效──这些很大部分在于观察与根据内线消息来的猜测。某些优化员得执行控制下的实验以取得不同优化方法的结果。

尽管如此,以下是搜寻引擎发展它们算法时的一些考虑,另,这份Google 专利清单也许读者可猜出他们会走哪条路线:

站点的年龄
自该网域注册后过多久
内容的年龄
新内容增加的规律性
链接的年龄和连接站点的名誉
一般站内因素
负面站内因素 (例如,太多关键字汇标(meta tag),很显然被优化过,会对站点造成伤害)
内容的独特性
使用于内容的相关术语 (搜寻引擎关联到的术语的方式视同如何关联到网页的主要内容)
Google网页级别 (只被使用在Google 的算法)
外在链接、外部链接的链结文字、在那些和在站点/网页包含的那些链接
引证和研究来源(表明内容是研究性质)
在搜索引擎数据库里列举的词根与其相关的术语(如 finance/financing)
导入的逆向链结,以及该链结的文字
一些导入链结的负面计分 (或许那些来自低价值页、被交换的逆向链结等)
逆向链结取得速率:太多太快意味著“不自然”的链结购买活动
围绕在导出链结、导入的逆向链结周围的文字。例如一个链结如果被 "Sponsored Links" (赞助商连结) 包围,该链结可能会被忽略。
用 "rel=nofollow" 建议搜寻引擎忽略该链接
在站点该文件的结构深度
从其他资源收集的网格表,譬如监视当搜寻结果导引用户到某页后,用户有多频繁按浏览器的返回钮
从来源像:Google AdWords/Adsense、Google 工具条等程序收集的网格表
从第三方资料分享协议收集的网格资料 (譬如监测站点流量的统计程序提供商)
删除导入链结的速率
使用子网域、在子网使用关键字和内容质量等等,以及从这些活动来的负面计分
和主文件语意上的连结
文件增加或改动的速率
主机服务商 IP 和该 IP 旗下其它站点的数量/质量

其他链结站会员 (link farm / link affiliation) 与被链结的站 (他们分享IP吗? 有一个共同的邮递地址在"联络我们 (Contact Us)" 页吗?)
技术细节像利用301重定向被移除的网页、对不存在网页显示404服务器标头而非200服务器标头、适当的利用 robots.txt
主机服务商正常运行时间
是否站点对不同类的用户显示不同的内容 (掩饰 (cloaking))
未及时矫正、无效的导出的链结
不安全或非法内容
HTML代码品质,以及错误出现数
由搜寻引擎自他们搜寻结果观察到的实际点击通过率评等
由最常存取搜寻结果的人手动评等

搜寻引擎优化和搜寻引擎之间关系
在第一代搜寻引擎发表后,搜寻引擎操作员变得对搜寻引擎优化社区感兴趣。在一些早期搜寻引擎, 譬如INFOSEEK, 要得到第一名不过是把顶尖的网页代码抓下、放在您的网站、并提交个URL让搜寻引擎立即索引并排名该页这么简单。

由于搜寻本身的高价值和标定性,搜寻引擎和搜寻引擎优化员间自始便存在对抗的关系。最近一次于2005 年召开的AirWeb年会,旨在谈论缩小这种敌对关系差距,和如何最小化某些太过于侵略性优化造成的损坏效果。

某些更具侵略性的优化员产生自动化的站点,或者使用某些最终会让该网域被搜寻引擎扫地出门的技术。而大多数优化公司则销售长期、低风险的策略服务,而且大部分使用高风险战略的优化公司,则在他们旗下的会员点使用、产生商业线索、或者纯内容站点,而非让它们客户站亲身涉险。

高品质网站通常排名很优
对许多有心于最大化网站附加价值的网站员们,可阅读由搜寻引擎出版的、以及W3C发行的编码指南。如果该指南被遵循,站点频繁地更新,有用、原创的内容,和建立几个实用、有意义的导入链接,获得相当可观数目的基本搜寻流量不是甚么难事。

当站点拥有有用的内容,其它站点员自然而然会连结至该站,进而增加访客它的网页级别和访客流。当访客发现一个有用的网站,他们倾向于利用电子邮件或者及时讯息连结介绍给其它访客。

总括来说,增进网站品质的搜寻引擎优化实现很可能比直接寻找操控搜寻排名手段的短期实现要活得长久。顶尖的搜寻引擎优化员们找寻的目标与搜寻引擎追求发扬光大的东西二者不雷而同。他们是:相关性、对他们用户有用的内容。

搜索是除了电子邮件以外被用得最多的网络行为方式。通过搜索引擎查找是网络冲浪者寻找网上信息和资源的主要手段。搜索引擎营销已经成为网络营销最重要的组成部分。如何使自己的网站被主要的搜索引擎收录、然后获得较高的排名,成为网站建设者们绞尽脑汁的话题。

1)了解搜索引擎如何抓取网页和如何索引网页。
你需要知道一些搜索引擎的基本工作原理,各个搜索引擎之间的区别,搜索机器人(SE robot或叫web crawler)如何进行工作,搜索引擎如何对搜索结果进行排序等等。

2)Meta标签优化。
主要包括主题(Title),网站描述(Description),和关键词(Keywords)。还有一些其它的隐藏文字比如Author(作者),Category(目录),Language(编码语种)等。

3)如何选取关键词并在网页中放置关键词。
搜索就得用关键词。关键词分析和选择是SEO最重要的工作之一。首先要给网站确定主关键词(一般在5个上下),然后针对这些关键词进行优化,包括关键词密度(Density),相关度(Relavancy),突出性(Prominency)等等。

4)了解主要的搜索引擎。
虽然搜索引擎有成千上万,但是对网站流量起决定作用的就那么几个。比如英文的主要有Google,Inktomi,Altavista等;中文的有百度,搜狐等。不同的搜索引擎对页面的抓取和索引、排序的规则都不一样。还要了解各搜索门户和搜索引擎之间的关系,比如Yahoo和AOL网页搜索用的是Google的搜索技术,MSN用的是Looksmart和Open Directory的技术。

5)主要的互联网目录。
Yahoo自身不是搜索引擎,而是一个大型的网站目录,Open Directory也不是,他们和搜索引擎的主要区别是网站内容的收集方式不同。目录是人工编辑的,主要收录网站主页;搜索引擎是自动收集的,除了主页外还抓取大量的内容页面。

6)按点击付费的搜索引擎。
搜索引擎也需要赢利,随着互联网商务的越来越成熟,收费的搜索引擎也开始大行其道。最典型的有Overture和百度,当然也包括Google的广告项目Google Adwords。越来越多的人通过搜索引擎的点击广告来定位商业网站,这里面也大有优化和排名的学问,你得学会用最少的广告投入获得最多的点击。

7)搜索引擎登录。
网站做完了以后,别躺在那里等着客人从天而降。要让别人找到你,最简单的办法就是将网站提交(submit)到搜索引擎。虽然免费已经不再是互联网(至少是搜索引擎)的主流-如果你的是商业网站,主要的搜索引擎和目录都会要求你付费来获得收录(比如Yahoo要299美元),但是好消息是(至少到目前为止)最大的搜索引擎Google目前还是免费,而且它主宰着60%以上的搜索市场。

8)链接交换和链接广泛度(Link Popularity)。
网页内容都是以超文本(Hypertext)的方式来互相链接的,网站之间也是如此。除了搜索引擎以外,人们也每天通过不同网站之间的链接来Surfing(“冲浪”)。其它网站到你的网站的链接越多,你也就会获得更多的访问量。更重要的是,你的网站的外部链接数越多,会被搜索引擎认为它的重要性越大,从而给你更高的排名。所以,你得花很多精力去做和别人做交换链接。