‘互联网络’ 分类的存档
众所周知,微软已经停止了对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年了,但是却发现写得越多,自己需要学习进步的地方越多。每当看到真正高手写的程序时候,看到那如诗般的代码的时候,自己都感到汗颜,所以学无止境!
作者:Brad Colbow In recent years Internet Explorer 6 has become the browser web designers love to hate. Security issues, JavaScript errors and inexplicable CSS rendering quirks have made it the brunt of many jokes. With IE6 in its twilight and big companies like Google dropping support, it seems like a good time to take a [...]
我们一直使用 Google XML Sitemap 插件产生符合国际标准的 sitemap.xml 文件。百度对国际标准的 sitemap.xml 是否支持无法考证,不过百度自己推出了一个互联网论坛收录开放协议: 互联网论坛收录开放协议是百度网页搜索制定的论坛内容收录标准,论坛网站可将论坛内发布的帖子制作成遵循此开放协议的XML格式的网页供搜索引擎索引,将论坛发布的帖子主动、及时地告知百度搜索引擎。 百度的互联网论坛收录开放协议的页面详细介绍了生成的 XML 文件的每个标签的属性和说明,所以只要按照它每个元素的描述,就能够给自己的博客制作适合百度互联网论坛收录开放协议的 sitemap 文件。下面是这份协议的一些需要注意的地方: 互联网论坛收录开放协议只是对百度 spider 原有收录方式的一种协助和有益补充,而不是取代。这个和 Google 的 Sitemap.xml 文件一样,我们不能完全依赖他来做 SEO,但是可以让百度或者 Google 更好的抓取我们的站点。 XML 文件的大小最大为10M,大于10M的文件百度spider将不能保证正确获取。 请将 XML 文件命名为 sitemap_baidu.xml 并上传到您网站根目录下,并保证文件所在的 URL 地址能够被百度 spider 正常访问。例如,网站为http://www.diigle.com/blog/,则将 XML 文件上传至 http://www.diigle.com/blog/sitemap_baidu.xml。由于百度没有 Google 一样的 WebMaster 工具,可以让你提交 sitemap 文件,所以需要把 baidu sitemap 的 URL 能够放到一个已经让百度索引的页面上,比如和我一样在这篇日志中列出百度 sitemap 的 URL。 另外百度spider不保证一定能收录您提交的全部内容。 其实博客和论坛在形式上是差不多的,博客更注重作者表述,论坛跟注重交流而已 [...]
[技术要点]: 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 [...]
众所周知,IE目前尚不支持HTML5,JavaScript运行效率也极为低下,但是微软的捆绑政策让IE的使用者一直居高不下,所以Google Wave等类似程序的开发者一直为此头痛不已。 为此Google于今天推出了Google Chrome Frame(下载地址)的第一个早期版本,这个开源的插件为IE浏览器提供了HTML5等其他open web技术的支持。 对于开发者来说,只需要在页面代码的加入如下一行即可启用这一功能。当安装有Google Chrome Frame插件的IE浏览器发现这行代码,将马上使用基于WebKit的Chrome渲染引擎替换IE自身的渲染引擎。而其他浏览器将忽略此行代码,不会影响他们的执行。 <meta http-equiv=”X-UA-Compatible” content=”chrome=1″> 毫不出乎我们意料的是,Google Wave率先提供了对Google Chrome Frame的支持。当用户使用IE浏览器访问Google Wave时,将会看到如下的对话框,提示用户安装Google Chrome Frame或者换用Chrome/Safari/Firefox浏览器。 Google Chrome Frame是面向IE 6、IE 7或IE 8用户设计。有分析人士认为,Google Chrome Frame的主要目标是IE 6用户(IE 6于2001年发布)。 使用Google Chrome Frame的IE浏览器Acid3测试成绩(本人用中文IE浏览器测试了一下,一直为98分,不知道为什么,可能因为是早期版本吧,对中文不友好?): 不使用Google Chrome Frame的IE浏览器Acid3测试成绩: 正如微软和其他公司观察家所指出的,由于内部标准和部署策略的原因,许多公司不会弃用IE 6浏览器。 科技博客TechCrunch特地采访了开发此插件的数位谷歌工程师,TechCrunch对此评论道: “谷歌是如此地讨厌IE,但谷歌又花费自己的时间帮助微软改进IE,这听起来既滑稽又令人敬畏。谷歌宣称其目的是崇高的。谷歌产品经理迈克·史密斯(Mike Smith)和软件工程师亚历克斯·拉塞尔(Alex Russell)告诉我们,他们(谷歌)只是希望为互联网用户和开发者提供更加无缝的互联网体验。也就是说,谷歌目前的目标只有一个——IE浏览器。” 由于大部分的IE用户都是企业用户,微软小心谨慎地促使IE 6用户升级是在情理之中的。但毫无疑问,微软同时也希望减小支持IE浏览器的负担。 微软IE总经理Dean Hachamovitch 8月份的一篇博文这样表示: [...]
刚刚在卢松松博客看到他的一篇新文章《我的网站推广的方法和手段!》深有感触。其实早在之前我就跟卢松松留过言,期待他能写写开博没多久却如此火爆的个人方法总结。我们都知道卢松松博客其实文章并不是很多,但是现在每篇文章的浏览量都有一万以上,留言更是我们都蒙昧以求的三位数。那么在卢松松写出的这篇文章的基础之上,七月在此写出一些自己的总结。 概括起来,卢松松提出的有5大点方法: 1,利用qq群推广,其实我认为这是最好的方法之一,qq群的作用不仅在于可以最快的宣传你的网站,而且更大的作用是可以认识许多和你一样领域或兴趣的朋友。经常在群里活跃的人自然会受到大家的关注。这是一种很好的网络友谊。可以结识许多志同道合的朋友,当然也能带来更多的读者。我认识的许多名博都有自己的3个或4个qq群。但是这个也在于你的qq群能带给人们兴趣或者是人们所需要的,否则没人想加进来就尴尬了。 2.友情链接。其实友情链接我认为也是最好的方法之一,可以互相交流,而且能够增加你的google pr值,但是我个人不认为友情链接越多越好,还有友情链接其实建站一开始会难一点,没有pr值不要紧,最重要的在于你自己写了一些好的文章,只要内容充实,原创的,一般很多博主都会接受。 3.软文推广。软文推广也是我用的最多的方法之一,写好软文能带给你不少的流量,更重要的是能很快的增加你网站的外链,这个是增加外链的最显著的方法。我一般都在A5站长网发表一些文章,只要写得好,会很快被大量转载,而且搜索引擎在这些网站上更新的速度让人匪夷所思,我经常发表的文章后几分钟搜索引擎就收录了,这就是大的权重高的网站的好处。但是切记一定要写出比较好的文章才去发表,我经常在站长网上逛的时候发现许多人发表的文章纯粹是“太软了”,写的自己都不知道说什么,然后加个链接,这种纯粹的宣传只会让人生厌,我强烈建议大家不要光为了宣传而宣传,还有应该建议A5管理员审核文章仔细点,不要这种文章都发表出来。 4.评论。认真的好的评论也很好用。盗过卢松松网站留评论的他基本80%都会回访,我是100%都会回访。这是基本的交际礼仪。但是我多次建议不要像灌水一样写评论,这是博客不是论坛。几个字的评论完全没有必要,要写就写些好点的评论,认真的回访是对博主最好的尊敬。 5.搜索引擎。我个人是非常看重搜索引擎的,月光博客的文章有70%以上都是搜索引擎来的,他的seo技术的确非常好。太多的关键字都是排在首页。而且广告的点击量也绝大部分是来自搜索引擎的,但是这种方法也是最漫长的方法,而且很容易就“触怒”搜索引擎,我就是,最近频繁的修改地址还有标题,关键字,现在收录全减为1,呵呵,慢慢搞吧。
在Google I/O 的开发者大会,Google工程副总裁Vic Gundotra 表示了他们对下一代HTML语言,HTML 5 的承诺。尽管HTML 5 还处在草案阶段,W3C 的委员会还在针对这一草案进行漫长的讨论,然而HTML 5已经被广泛实现,或者作为一种实验性的演示,或者已经成为某些Web程序的核心。 HTML 5 为我们提供了不同的机会,Gundotra 说,他同时提到,在过去的10年,JavaScript 在主流浏览器中的速度已经提升了接近100倍,这大大改善了 Web 程序的速度。Gundotra 还提供了多个 HTML 5 演示,包含一个使用HTML 5 实现的 YouTube 页,所有的视频播放均以 HTML 5 实现。 Gundotra说,现在的视频,问题在于有甚多东西是我们所不能控制的,HTML 5为我们提供了一个<video> 标签,就像使用<img> 标签一样简单。 Demo 中还有一个使用 JavaScript 实现的移动跟踪视频程序,全部使用 HTML 实现视频播放。一个妇女在摄像机前面走过,JavaScript 实时对她的图像进行跟踪,在她身体不同部位用方框标识出来。过去,这类应用通常会让浏览器崩溃或失去反应,但 HTML 5 的 “web workers”后台处理能力很强,浏览器在该程序运行期间几乎看不到任何卡的现象。这个演示赢得全场4000个与会者的热烈鼓掌。 另一个 Demo 是类似 Doom 的第一人称设计游戏,全部由 JavaScript 和 HTML5 的 Cavas [...]
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 直观易用,但不能压缩变量名
