‘网站应用’ 分类的存档
众所周知,微软已经停止了对ASP的更新,跟着许多的开发者相继抛弃它。在Google上搜一下,可以发现一大堆对ASP不好的评价,什么运行速度慢、异常处理机制不好、缺乏面向对象机制、开发效率低、漏洞多等等。然而,到目前为止我还在使用ASP开发Web应用程序,虽然不支持跨平台应用是一个显著的缺点(ASP的核心就是COM,这个东西只能在windows系统上使用了),但是我仍然认为ASP无论是作为入门的技术还是开发平台,都很值得我们继续去使用。下面就结合自己的使用经验和别人的一些看法,来给ASP一个中肯的评价。 一、ASP不慢,慢的是数据库 在使用ASP+Access架构的程序时候(包括我自己写的下载系统),我也遇到了某些人所说的速度慢,后台处理大量数据时卡死不动的问题。然而,当我把Access数据库换成SQL Server数据库后问题就解决了。所以罪魁祸首乃Access。程序执行所需的时间是毫秒级别的,在这个级别内,无论是10毫秒还是100毫秒,实在是难以感觉出来,但是Access的并发性差,阻塞了部分程序执行,导致页面卡死。Access的相对SQL Server的无成本,使得国内人对ASP+Access滥用,导致了大家对ASP的误解。 二、异常处理机制很好,只是很多人不知道 很多人包括我在内都主要用VBScript来编写ASP程序,VBScript的异常处理机制的确是糟透了。然而,JScript则 很好,因为它支持包括C#、Java都有的try…catch语句,足以处理所有异常。 三、在JavaScript蓬勃发展的现在,面向对象也不是问题 自从JavaScript因为Ajax而兴起,它的面向对象机制就已经被模拟出来了。虽然不是真正的面向对象, 但是作为中小型Web程序,这也足够了。同样以ECMAScript为核心的JScript也拥有相同的机制。此外,ECMAScript的语言灵活性无疑是最强的,做前端开发的人员对此最为清楚。 四、漏洞是程序员造成的 经常听到有人说ASP的SQL注入漏洞非常严重,其实无论什么语言都存在这样的漏洞,问题在于程序员会不会堵。ASP中可以通过参数化查询简单高效地解决这个问题。不需要字符串替换,甚至不需要数据验证。 五、开发中小型应用效率不低 很多人说ASP.NET的开发效率高,我对其持反对态度。如果应用程序的功能需求不复杂,绝对是用ASP开发要快。因为ASP是解析执行,不需要编译。修改、调试要方便得多。Windows也为ASP提供了一个很好的运行环境(IIS,这个到目前的最新版本IIS7.5都对ASP提供支持,看来微软也没完全放弃它),无需再作额外的配置。此外,当前后台都用JS时,很多代码都可以复用,这是其他技术平台无法比拟的。 六、可以认识Web应用程序的基本原理 ASP.NET、PHP等技术屏蔽了许多Web的底层,这对初学者认识Web程序的原理非常不利。而ASP则绝对是从最基础写起,比如上传文件的程序就必须分析数据包获取文件数据。一切从头写起,而不是简单的靠一个函数解决,并且目前也没有一个较好的ASP框架,这也许是许多人指责ASP开发效率不高的原因之一吧。 不过有一点是可以肯定的,那就是:ASP的入门门槛最低。这按理说应该算ASP的优点,它秉承了微软技术一贯的作风——简单,入门门槛低。也正是因为这一点,使得大量的Web开发领域的新手能够很快地开发网站。但也正因为这一点,使许多掌握了ASP的一点皮毛知识的人自认为对ASP很懂,结果写出很垃圾的程序,让别人看了ASP的笑话。看ASP的语法很简单,Java的语法也复杂不到哪里去,C++和C虽然复杂但是只要是一个智力正常的人也没有理由学不会。问题是语法本身很简单,但是Web很复杂。我们不是在这里浅尝辄止地玩弄一下某种脚本语言,我们是在做Web开发。Web开发虽然有不同的解决方案,但是基本的原理是相通的。如果你清楚Web端程序的一些运行原理,你就会明白你使用的开发技术的语法难度只不过是一种入门级的难度,真正的难度不在于你用什么技术方案去开发Web应用程序,真正的难度在于错综复杂的Web应用自身。我用ASP写程序也已经有6,7年了,但是却发现写得越多,自己需要学习进步的地方越多。每当看到真正高手写的程序时候,看到那如诗般的代码的时候,自己都感到汗颜,所以学无止境!
[技术要点]: 1、爆出老Y最新的四个漏洞; 2、利用正则表达式“(\<.+?\>)”中的“.”含义为“匹配除换行符以外的任意字符”,在Html语句的标签中插入“换行符”即可饶过正则表达式的过滤; 3、绕过逗号,另类手工注入。CheckStr()函数过滤了逗号,所以不能使用多参数的函数,比如字符串截取函数mid(),也不能使用union语句,因为union 语句必须保证字段数一致,还不能使用“<”、“>”、“=”等符号,所以使用select的like语句逐位猜解与密码的MD5码相匹配的字符,取值范围:0-9,A-F(不区分大小); 4、给出一段字符串与Unicode字符转换的代码; [主要内容]: 老Y采用伪静态页面(由/Html/Index.asp调用),代码相当简洁,过滤也非常严密,数字型使用LaoYRequest()、字符型使用CheckStr()等函数进行过滤防止注入,文本内容使用LoseHtml()函数过滤防止跨站;功能比较全面,有新闻固顶、公告、留言、评论、RSS、用户注册、网站风格以及简繁体选择等等,动态页面文件较少。 但是智者千虑必有一疏,本文对老Y做了全面剖析,我们再次感受到安全必须要过滤严密!老Y的CheckStr()函数因为过滤了逗号才躲过致命一劫,但是疏忽了括号,导致我们可以巧妙构造Sql语句达到注入目的。本文涉及到一种另类的手工注入方法,即绕过mid等函数利用了like关键字进行字符猜解,注入漏洞二还会完全摧毁老Y——删除所有文章,使其仅剩“躯壳”——网站框架。又因为老Y的LoseHtml()函数在使用正则表达式时存在缺陷,所以导致我们可以利用插入换行符的方法提交跨站脚本,评论跨站还将影响网站首页!如果提交页面跳转、关闭、死循环等脚本,即可完成DDOS类似攻击,还可以获取管理员Cookie、网页挂马、传播蠕虫等其他跨站攻击。总之这一切均因为老Y函数过滤不足所致!最后提醒大家:使用老Y时务必修改管理员用户表名及后台管理目录。 漏洞一:js.asp页面漏洞。此漏洞由幻泉(bl4ck)发现。由于js.asp页面在处理使用CheckStr()函数过滤后的字符时,将其中的“|”分割符又还原为“,”(即逗号),导致注入。 利用链接: Code: http://127.0.0.1/laoy/js.asp?maxlen=50&num=5&ClassNo=1|1|1)%09Union%09Select%091|cstr(id)%2Bchr(58)%2Badmin_name%2Bchr(58)%2Badmin_pass|3|4|5|6|7|8|9%09From%09yao_admin%09Where%09(1 //其中maxlen和num参数不能少 //cstr()函数将数字型字段id的值转为字符串, //%2B即“+” 用作连接id、admin_name、admin_pass字段 // chr(58)即“:”为分割符 注意:版本2.3和2.4后台认证方式的差异:前者管理员密码使用16位的MD5码,登陆认证使用Session;后者管理员密码使用截取的18位MD5码(adminpwd=Mid(md5(adminpwd,32),4,18)),登陆认证使用Cookie。令人费解的变化:2.3版本虽然Session无法伪造,但是16位的MD5码可以在线或爆破,2.4版本改为截取的18位MD5码后虽然不能破解(除非自己编写爆破工具),但是却可以进行Cookie欺骗!这比破解MD5码更方便。 漏洞二:User/UserAdd.asp页面漏洞。由于在User/UserAdd.asp页面中,edit()、saveedit()模块使用CheckStr()函数过滤数字型变量ID,导致可以手工注入获得管理员密码,del()、delAll()模块未过滤变量ID,导致用户可以任意删除文章。此漏洞需要登陆用户后才能利用。 edit()模块漏洞利用: 修改任意文章。从代码不难看出,如果令id为“168 OR 1”确保Sql语句返回非空集,便会打开id为168的文章编辑界面,而且saveedit()模块同样存在此漏洞,导致我们可以修改任意文章。需要注意的是经过编辑后的文章将变为未审。当然如果仅仅可以修改任意文章的话,此漏洞的利用价值就不是很高,所以让我们继续发掘吧。 注入管理员密码。通过前面介绍,我们知道2.3版本没有过滤逗号,因此构造union语句相对比较容易,而2.4版本过滤了逗号,利用需要一些技巧,所以这里分别进行介绍。 绕过逗号,另类的手工注入。CheckStr()函数过滤了逗号,所以不能使用多参数的函数,比如字符串截取函数mid(),也不能使用union语句,因为union 语句必须保证字段数一致,还不能使用“<”、“>”、“=”等符号,这给我们手工注入提出了挑战。于是考虑到使用select的like语句,基本语法如下: Code: Select * from yao_admin where admin_pass like ‘1*’ Select * from yao_admin where admin_pass like [...]
刚刚在卢松松博客看到他的一篇新文章《我的网站推广的方法和手段!》深有感触。其实早在之前我就跟卢松松留过言,期待他能写写开博没多久却如此火爆的个人方法总结。我们都知道卢松松博客其实文章并不是很多,但是现在每篇文章的浏览量都有一万以上,留言更是我们都蒙昧以求的三位数。那么在卢松松写出的这篇文章的基础之上,七月在此写出一些自己的总结。 概括起来,卢松松提出的有5大点方法: 1,利用qq群推广,其实我认为这是最好的方法之一,qq群的作用不仅在于可以最快的宣传你的网站,而且更大的作用是可以认识许多和你一样领域或兴趣的朋友。经常在群里活跃的人自然会受到大家的关注。这是一种很好的网络友谊。可以结识许多志同道合的朋友,当然也能带来更多的读者。我认识的许多名博都有自己的3个或4个qq群。但是这个也在于你的qq群能带给人们兴趣或者是人们所需要的,否则没人想加进来就尴尬了。 2.友情链接。其实友情链接我认为也是最好的方法之一,可以互相交流,而且能够增加你的google pr值,但是我个人不认为友情链接越多越好,还有友情链接其实建站一开始会难一点,没有pr值不要紧,最重要的在于你自己写了一些好的文章,只要内容充实,原创的,一般很多博主都会接受。 3.软文推广。软文推广也是我用的最多的方法之一,写好软文能带给你不少的流量,更重要的是能很快的增加你网站的外链,这个是增加外链的最显著的方法。我一般都在A5站长网发表一些文章,只要写得好,会很快被大量转载,而且搜索引擎在这些网站上更新的速度让人匪夷所思,我经常发表的文章后几分钟搜索引擎就收录了,这就是大的权重高的网站的好处。但是切记一定要写出比较好的文章才去发表,我经常在站长网上逛的时候发现许多人发表的文章纯粹是“太软了”,写的自己都不知道说什么,然后加个链接,这种纯粹的宣传只会让人生厌,我强烈建议大家不要光为了宣传而宣传,还有应该建议A5管理员审核文章仔细点,不要这种文章都发表出来。 4.评论。认真的好的评论也很好用。盗过卢松松网站留评论的他基本80%都会回访,我是100%都会回访。这是基本的交际礼仪。但是我多次建议不要像灌水一样写评论,这是博客不是论坛。几个字的评论完全没有必要,要写就写些好点的评论,认真的回访是对博主最好的尊敬。 5.搜索引擎。我个人是非常看重搜索引擎的,月光博客的文章有70%以上都是搜索引擎来的,他的seo技术的确非常好。太多的关键字都是排在首页。而且广告的点击量也绝大部分是来自搜索引擎的,但是这种方法也是最漫长的方法,而且很容易就“触怒”搜索引擎,我就是,最近频繁的修改地址还有标题,关键字,现在收录全减为1,呵呵,慢慢搞吧。
Web标准开发非常注重代码的精简,在任何时候,我们都想文件拥有较小的体积,压缩JavaScript,CSS文件是比较有意义的,浏览器解析这些文件时不需要多余的空格,压缩后可以加快文件下载速度,再加上混淆处理后降低源码可读性,保护源码版权。 虽然您的网站正在发展中,但是总有一天会壮大,如果你的代码上再不能优化的话,那就压缩吧! CSS 在线压缩: cleancss.com 功能最强大,设置项最多 css_compressor 可压缩代码片段、URL、文件 CSS Drive:CSS Compressor 直观易用 Styleneat简单易用的CSS格式化工具,虽然选项不多,但还是蛮实用的,支持直接输入,上传文件和输入URL Format CSS Online /在线CSS格式化工具,这是一个专门用于格式化CSS样式表文件的在线工具,讨论该使用”多行模式”还是”单行模式”或其它模式是没什么意义的,不如大家就按自己的模式去做,在协作的时候用工具重新格式化成自己喜欢的模式就好了 Javascript 在线压缩: javascriptcompressor.com 压缩比最大,可设置Base62 encode以及Shrink variables jsmin 直观易用,但不能压缩变量名
当为了查找一些资料要访问国外网站的时候,往往有很多网站在国内被和谐掉了,比如维基百科等。为了能找到有关资料,大家可谓是煞费苦心,满世界的找代理服务器,辛苦找到一个能用的,没多大会儿功夫又不行了。难道除了用代理服务器,我们就没有更好的选择了?呵呵,当然是不了。我们还可以选择用VPN哦,先简单介绍一下VPN的原理,然后请出我们的主角:Hotspot Shield VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络我们可以把它理解成是虚拟出来的企业内部专线。它可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。这就好比去电信局申请专线,但是不用给铺设线路的费用,也不用购买路由器等硬件设备。VPN技术原是路由器具有的重要技术之一,目前在交换机,防火墙设备或WINDOWS2000等软件里也都支持VPN功能,一句话,VPN的核心就是在利用公共网络建立虚拟私有网。通俗的说成是把两个以上的局域网变成同一个局域网,大家可以共同实现各自网内的资源的共享,就好像在同一个网内。应用方面可以实现ERP、OA、CRM等应用软件的移动办公和异地分公司的使用、协同办公。而 Hotspot Shield 这款软件,正是借助了VPN技术来实现让我们隐藏自己IP,同时又让我们可以像使用代理那样跨越了网络的国界限制,自由的在网海中翱游。 从 http://www.hotspotshield.com/下载到最新的 Hotspot Shield安装包一路回车安装好以后,不需要做任何的设置,右键点击任务栏上的红色小盾牌,选择“Connect”进行连接。这时浏览器会弹出一个连接进度的小窗口。在连接VPN服务器时,红色小盾牌会变为黄色,而连接成功后,小盾牌就是绿色的了。 和使用代理服务器相比,Hotspot Shield 的优点就比较明显了。成功的连接了VPN服务器之后,无需对我们的其他应用软件进行修改和设置,完全和平时使用一样。如果在连接前我们已经打开了如QQ一类的聊天软件,那么连接成功后,QQ会自动重新登录一下。我们再看自己的IP时,已经跑到美国去了。用浏览器打开www.vpnzx.cn ,可以看到IP地址也变为了美国的。 同理,如果我们想通过使用 Hotspot Shield 来进行其他网络操作,原理上也是一样的。无论是用黑客工具玩入侵黑站,还是用浏览器操作webshell都不用担心把自己的真实IP留在服务器的日志里了,又或者玩韩服的跑跑卡丁车、隐藏自己QQ上的真实IP地址…… 原本用GOOGLE搜不出来的东西,现在能搜了。原本打不开的国外网站,也可以尽情的浏览了。而且无论你是通过ADSL拨号上网,还是通过路由共享上网。都完全没有影响。 对该软件测试完毕以后,简直乐疯我了,这么好的东东,又是完全免费的,怎么能不让广大网迷们尽快享受到呢?
现在流行的Twitter等微博客网站,有一个很好的用户体验,就是在文本框中输入文字的时候,会自动统计输入的字符,并显示用户还能输入的字符,在限制了140个字的微博客中,这样的小提示可以很好的增强用户体验。 如果实现这种技术呢,我进行了一些研究,发现实现其实挺简单,几行代码就能完成输入字符统计功能,经过实际测试,其对文字的统计与Twitter等微博客的完全相同。 使用方法是,先增加一个span,用于显示剩余的字数,然后在Textarea中,加入一个onkeydown和onkeyup的事件,调用另一段JavaScript函数,函数调用的参数为span的id和textarea的id,然后再JavaScript中使用innerHTML返回计算出来的剩余字数。 以下是相关的JavaScript代码: 可以输入140字 转载自月光博客
使用ASP做网站虽然有点落伍,但在中国还是有很大市场的,因为大部分国内用户使用Windows Server服务器,在Windows Server的IIS环境下,ASP+SQLServer的性能丝毫不逊于PHP+MySQL,可惜ASP不支持跨平台,不支持Apache,因此发展受到了很大限制。在开源项目上,国内的ASP开源项目也没有PHP的多,不过也有一些,下面是我总结的一些基于ASP的建站开源系统。 论坛:DVBBS 动网论坛曾经是国内很流行的论坛,不过后来逐步衰落,在大用户量访问下,其性能不如Discuz和PHPWind。 博客平台:Z-BLOG Z-Blog是一套基于ASP平台的开放、高效、健壮、实用的Blog发布程序,可以生成静态文件、高度可制定化模板、WAP访问、支持第三方编辑器、可定义静态文件名称、统一权限控制、站内全文搜索等功能。 博客平台:PJBlog PJBlog是另一个ASP博客系统,主要功能包括有:支持静态化文件,文章编辑器兼容两种编辑方式,支持自定义面板和CSS,,自定义模块,可以修改页面上的的布局,可以更换CSS样式界面等。 多用户博客:Oblog oBlog多用户博客程序是目前国内应用较广的ASP博客程序,可用于BSP服务,分免费版和商业版等不同版本,可实现日志的HTML静态化。 CMS:KingCMS KingCMS是一套简单易学,操作简单的开源内容管理系统(CMS),KingCMS分为PHP+MySQL和ASP+MSSQL/ACCESS两种语言版本的系统。 CMS:5uCMS 5U是一套小巧的功能强大的CMS系统,制作模板非常方便,不过现在走Dll封装的路线了,发展不再被看好。 上面就是我总结的一些基于ASP的建站开源系统,如果你还知道有什么好的ASP开源系统被遗漏了,请留言补充。
