2005年9月30日星期五

Windows IIS WEB服务器配置安全规范

  本文档列举出一些建议和最佳做法,以保证 Web 上运行 Microsoft Windows 2000 和 Internet Information Services (IIS) 5 的服务器的安全。这些设置侧重于安全性而不是性能方面。因此认真阅读以下的建议并运用它们来获得适用于自己企业的设置是很重要的。

注意 本文档是由“Designing Secure Web-Based Applications for Microsoft Windows 2000”,Microsoft Press,ISBN: 0735609950 改编而来。

那些熟悉 Internet Information Server 4 清单的客户将注意到本列表要远短于 Internet Information Server 4 的清单。这是因为以下两点原因:

  • 许多 Windows 2000 系统范围的设置可以通过提供的安全模板 (hisecweb,inf) 进行配置;所以不需要手动配置注册表设置。
  • 在 Windows 2000 和 IIS 5 的默认状态下,将禁用 Microsoft Windows NT 4 和 Internet Information Server 4 上的某些低安全级别的默认设置。

本文档的其余部分分为以下几个部分:

  • 一般性安全考虑事项
  • Windows 2000 安全考虑事项
  • IIS 5 安全考虑事项

一般性安全考虑事项  

本部分内容讲述一般性安全问题。

阅读您企业的安全策略

拥有安全策略是十分重要的。对以下问题,您需要有现成的答案:

  • 如何对入侵作出反应?
  • 备份存储在何处?
  • 允许谁访问服务器?

SANS InstituteBaseline Software, Inc.Practical Unix & Internet Security (O'Reilly Books, 1996) 中可以找到有关策略信息的比较好资源。

预订 Microsoft 安全通知服务

您可以在 http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/notify.asp 上预定 Microsoft 安全通知服务,使自己能够及时知道有关 Microsoft 安全问题和修补程序的信息。您将通过电子邮件获得有关安全问题的自动通知。

您还应当考虑在桌面上放置 Microsoft 安全顾问程序的快捷方式。要完成此操作,请执行下列步骤:

  1. 打开 Internet Explorer。
  2. 导航到 http://www.microsoft.com/technet/security/bulletin/notify.asp
  3. 从“收藏”菜单中选择“添加到收藏夹”。
  4. 选中“允许脱机使用”复选框。
  5. 单击“自定义”。
  6. 在“脱机收藏夹向导”中单击“下一步”。
  7. 选中“是”选项按钮并指定下载与该页链接的 2 层网页。
  8. 单击“下一步”。
  9. 选中“创建新的计划”选项按钮,然后单击“下一步”。
  10. 接受默认设置,再单击“下一步”。
  11. 单击“完成”。
  12. 单击“确定”。
  13. 从“收藏”菜单中选中“整理收藏夹”。
  14. 在“整理收藏夹”对话框中选择“Microsoft TechNet Security”快捷方式。
  15. 单击“属性”。
  16. 单击“Microsoft TechNet Security 属性”对话框的“下载”选项卡。
  17. 取消选中“跟踪本页 Web 站点之外的链接”复选框。
  18. 单击“确定”,然后单击“关闭”。

现在您可以将 Microsoft TechNet Security 快捷方式从“收藏”菜单拖到桌面上。如果有新的安全消息,图标上将出现一个小红标记。

要点 如果出现了新的安全问题,您必须非常重视它们。这一点再怎么强调也不为过。

Windows 2000 安全考虑事项  

本部分内容专门讲述有关 Windows 2000 的安全问题。

检查、更新及部署提供的 Hisecweb.inf 安全模板

我们已经包括了名为 Hisecweb.inf 的安全模板,作为适用于大多数安全网站的基准。该模板配置了基本的 Windows 2000 系统范围策略。

Hisecweb.inf 可以从如下地址下载:
http://download.microsoft.com/download/win2000srv/SCM/1.0/NT5/EN-US/hisecweb.exe

执行下列步骤来使用模板:

  1. 将模板复制到 %windir%security emplates 目录。
  2. 打开“安全模板”工具,并查看设置。
  3. 打开“安全配置和分析”工具,并加载模板。
  4. 右键单击“安全配置和分析”工具,并从上下文菜单中选择“立即分析计算机”。
  5. 等待工作完成。
  6. 检查查找结果并按需要更新模板。
  7. 如果您对模板满意,请右键单击“安全配置和分析”工具,并从上下文菜单中选择“立即配置计算机”。

配置 IPSec 策略

您应当认真考虑在每一个 Web 服务器上设置 Internet 协议安全性 (IPSec) 包筛选器策略。如果您的防火墙被攻破,该策略将提供额外的安全级别。多级别安全技术通常被认为是很好的做法。

一般而言,除了那些您明显希望支持的协议与希望打开的端口以外,应当阻止其他所有 TCP/IP 协议。您可以使用 IPSec 管理工具或 IPSecPol 命令行工具来部署 IPSec 策略。

保护 Telnet 服务器安全

如果您打算使用包含在 Windows 2000 中的 Telnet 服务器,您应当考虑限制能够访问该服务的用户。要完成此操作,请执行下列步骤:

  1. 打开“本地用户和组”工具。
  2. 右键单击“组”节点,并从上下文菜单中选择“新建组”。
  3. 在“组名”框中输入 TelnetClients。
  4. 单击“添加”以添加对该计算机有 telnet 访问权限的用户。
  5. 单击“创建”,再单击“关闭”。

当存在 TelnetClients 组时,Telnet 服务将仅允许那些在组中定义的用户访问服务器。

IIS 5 安全考虑事项  

本部分内容专门讲述有关 Internet Information Services 5 的安全问题。

为虚拟目录设置适当的 ACL

虽然此步骤从某种程度上来说取决于应用程序,但一些主要规则仍然适用,如表 F-1 所示。

文件类型
访问控制列表
CGI (.exe, .dll, .cmd, .pl)

 

Everyone (X)
Administrators(完全控制)
System(完全控制)

 

脚本文件 (.asp)

 

Everyone (X)
Administrators(完全控制)
System(完全控制)

 

包含文件 (.inc, .shtm, .shtml)

 

Everyone (X)
Administrators(完全控制)
System(完全控制)

 

静态内容 (.txt, .gif, .jpg, .html)

 

Everyone (R)
Administrators(完全控制)
System(完全控制)

 

推荐使用的各文件类型的默认 ACL

与为每一个文件单独设置 ACL 相比,更好的办法是为每一种文件类型创建新的目录,在这些目录上设置 ACL,并允许 ACL 继承到文件。例如,目录结构可能如下所示:

  • c:inetpubwwwrootmyserverstatic (.html)
  • c:inetpubwwwrootmyserverinclude (.inc)
  • c:inetpubwwwrootmyserverscript (.asp)
  • c:inetpubwwwrootmyserverexecutable (.dll)
  • c:inetpubwwwrootmyserverimages (.gif, .jpeg)

此外,有两个目录需要特别注意:

  • c:inetpubftproot (FTP server)
  • c:inetpubmailroot (SMTP server)

这两个目录上的 ACL 都是“Everyone(完全控制)”,应当根据您的功能级别覆盖为更加严格的设置。如果要支持“Everyone(写入)”,请将该文件夹放置到与 IIS 服务器不同的卷中,或者使用 Windows 2000 磁盘空间配额来限制可以写入这些目录的数据量。

设置适当的 IIS 日志文件 ACL

请确保 IIS 生成的日志文件 (%systemroot%system32LogFiles) 上的 ACL 是:

  • Administrators(完全控制)
  • System(完全控制)
  • Everyone (RWC)

这有助于防止恶意用户删除文件以掩饰他们的踪迹。

启用日志记录

当您希望确定服务器是否正受到攻击时,日志记录是非常重要的。应当通过下列步骤使用 W3C 扩展日志记录格式:

  1. 加载 Internet Information Services 工具。
  2. 右键单击怀疑有问题的站点,然后从上下文菜单中选择“属性”。
  3. 单击“网站”选项卡。
  4. 选中“启用日志”复选框。
  5. 从“活动日志格式”下拉列表中选择“W3C 扩展日志文件格式”。
  6. 单击“属性”。
  7. 单击“扩展属性”选项卡,然后设置下列属性:
  • 客户端 IP 地址
  • 用户名
  • 方法
  • URI 资源
  • HTTP 状态
  • Win32 状态
  • 用户代理
  • 服务器 IP 地址
  • 服务器端口

仅当您将多个 Web 服务器设置在同一计算机上时,后两个属性才有用。Win32 Status 属性非常适合于调试。当您检查日志时,请注意错误 5,即被拒绝的访问。您可以通过在命令行中输入 net helpmsg err (其中 err 代表您感兴趣的错误号码)来找出其他 Win32 错误是什么含义。

设置 IP 地址/DNS 地址限制

这并非要设置的普通选项,但是如果希望限制某些用户访问您的网站,这将是一个有用的选项。请注意如果您输入域名系统 (DNS) 名称,那么 IIS 将必须执行 DNS 检查,这将很费时间。

验证可执行内容的可信度

要了解可执行内容是否可信是很难的。有一个小测试是用 DumpBin 工具来查看可执行内容是否调用了某些 API。许多 Win32 开发工具都含有 DumpBin。例如,如果您希望查看名为 MyISAPI.dll 的文件是否调用 RevertToSelf,请使用下列语法:

dumpbin /imports MyISAPI.dll | find "RevertToSelf"

如果屏幕上未出现结果,MyISAPI.dll 将不直接调用 RevertToSelf。它将可能通过 LoadLibrary 来调用该 API,在此情况下您也可以使用相似的命令来进行查找。

在 IIS 服务器上更新根目录的 CA 证书

该过程包括两个步骤:第一步:添加所有信任的新根目录证书颁发机构 (CA) 证书—尤其是任何通过使用 Microsoft Certificate Services 2.0 创建的新根目录 CA 证书。第二步:删除所有不信任的根目录 CA 证书。请注意如果您不知道发布根目录证书的公司名称,那么就不应当信任他们!

所有 IIS 使用的根目录 CA 证书都存放在计算机的机器存储中。可以通过下列步骤来访问该机器存储:

  1. 打开 Microsoft Management Console (MMC)。
  2. 从“控制台”菜单中选择“添加/删除管理单元”,然后单击“添加”。
  3. 选择“证书”并单击“添加”。
  4. 单击“计算机帐户”选项按钮。
  5. 单击“下一步”。
  6. 选中所指机器。
  7. 单击“完成”。
  8. 单击“关闭”,再单击“确定”。
  9. 展开证书节点。
  10. 扩展信任的根目录证书颁发机构。
  11. 选择证书。

右窗格将显示当前信任的全部根目录 CA 证书。如果需要,可以删除多个证书。

注意: 不要删除 Microsoft 或 VeriSign 根目录。操作系统会大量使用它们。

禁用或删除所有示例应用程序

示例仅仅是示例;默认情况下并不安装它们,并且永远不应在产品服务器上安装。请注意,某些示例是安装的,使它们只能通过 http://localhost 或 127.0.0.1 进行访问,即使这样也应将其删除。

F-2 表列举了某些示例的默认位置。

示例
虚拟目录
位置
IIS 示例

 

IISSamples

 

c:inetpubiissamples

 

IIS 文档

 

IISHelp

 

c:winnthelpiishelp

 

数据访问

 

MSADC

 

c:program filescommon filessystemmsadc

 

包含在 Internet Information Server 5 中的示例文件。

禁用或删除不需要的 COM 组件

某些 COM 组件对于多数应用程序都是不需要的,应当将其删除。尤其需要考虑禁用“文件系统对象”组件,但请注意这样也会删除 Dictionary 对象。请注意某些程序可能需要您禁用的组件。例如:Site Server 3.0 使用“文件系统对象”。下列命令将禁用“文件系统对象”:

regsvr32 scrrun.dll /u

删除 IISADMPWD 虚拟目录

该目录允许您重新设置 Windows NT 和 Windows 2000 密码。这主要是为 Intranet 方案设计的,并且不作为 IIS 5 的一部分来安装,但是在 IIS 4 服务器升级到 IIS 5 时将不会被删除。如果您不使用 Intranet 或者您将服务器连接到网站上,则应当将其删除。有关此功能的详细信息,请参考 Microsoft Knowledge Base 文章 Q184619。

删除不使用的脚本映射

IIS 预配置为支持常见的文件扩展名,如 .asp 和 .shtm 文件。当 IIS 接收到针对其中某一类型文件的请求时,该调用由 DLL 进行处理。如果您不会用到其中某些扩展名或功能,请按照如下步骤进行删除:

  1. 打开 Internet 服务管理器。
  2. 右键单击 Web 服务器,并从上下文菜单中选择“属性”。
  3. 主属性
  4. 选择“WWW 服务”|“编辑”|“HomeDirectory”|“配置”

删除下列引用:

如果您不使用...
请删除项目:
基于网站的密码重置

 

.htr

 

Internet 数据库连接器(所有 IIS 5 网站应当使用 ADO 或相似技术)

 

.idc

 

服务器端包含程序

 

.stm, .shtm 和 .shtml

 

Internet 打印

 

.printer

 

索引服务器

 

.htw, .ida and .idq

 

注意: “Internet 打印”可以通过组策略和 Internet 服务管理器来配置。如果组策略设置和 Internet 管理器设置有冲突,那么组策略设置优先。如果您通过 Internet 服务管理器删除“Internet 打印”,请务必验证不能通过本地或域的组策略重新启用它。(默认组策略既不启用也不禁用“Internet 打印”)。请在 MMC 组策略管理单元中,选择“计算机配置”|“管理模板”|“打印”|“基于 Web 的打印”。

注意: 除非出于危急任务的原因要使用 .htr 功能,否则应当删除 .htr 扩展名。

检查 ASP 代码中的 <FORM> 和查询字符串输入

许多站点使用从用户那得到的输入来直接调用其他代码或创建 SQL 声明。换句话说,它们将该输入当作有效的、格式良好的、无恶意的输入。但为了安全起见,却不应当这样。因为实际工作中存在很多这样的攻击,其中用户输入被错误的当作有效输入,使用户能够获得服务器的访问权限或者产生损害。您应当在将其传送给另一个过程或方法调用(它们可能会使用外部资源,比如文件系统或数据库)前,检查每个 <FORM> 输入和查询字串。

您可以使用 JScript V5 和 VBScript V5 常规表达式功能来执行文本检查。下列示例代码将去掉那些只包含无效字符(不是 0-9a-zA-Z 或 _ 的字符)的字符串:

Set reg = New RegExp
reg.Pattern = "W+" ' One or more characters which
' are NOT 0-9a-zA-Z or '_'
strUnTainted = reg.Replace(strTainted, "")

下列示例将去掉 | 运算符后的所有文本:

Set reg = New RegExp
reg.Pattern = "^(.+)|(.+)" ' Any character from the start of
' the string to a | character.
strUnTainted = reg.Replace(strTainted, "$1")

同样,使用“脚本文件系统对象”打开或创建文件时请小心。如果文件名是基于用户输入,那么用户可能企图打开一系列端口或打印机。下列 JScript 代码会去掉无效文件名:

var strOut = strIn.replace(/(AUX|PRN|NUL|COMd|LPTd)+s*$/i,"");

版本 5 脚本引擎中的模式语法与 Perl 5.0 中的相同。请参考位于 http://msdn.microsoft.com/scripting/default.htm 的 V5 脚本引擎文档获取详细信息,有关范例请访问 http://msdn.microsoft.com/workshop/languages/clinic/scripting051099.asp

禁用父路径

父路径允许您在调用诸如 MapPath 等功能时使用“..”。默认状态下,该选项是启用的,您应当禁用它。按照以下步骤禁用该选项:

  1. 右键单击网站的根目录,然后从上下文菜单中选择“属性”。
  2. 单击“主目录”选项卡。
  3. 单击“配置”。
  4. 单击“App 选项”选项卡。
  5. 取消选中“启用父路径”复选框。

在“内容 – 位置”中禁用 IP 地址

“内容 – 位置”首部会暴露通常隐藏在网络地址转换 (NAT) 防火墙或代理服务器后的内部 IP 地址。

  来源:微软技术支持中心

2005年9月28日星期三

银行应用USB Key身份认证方案

  前言:本文为USB Key的厂商SafeNet公司提供的宣传稿件,并不代表本博客作者的观点和看法。

  本文的技术解决方案使用的是SafeNet自身的产品,虽然这个产品支持数字签名和PKI体系,可生成并储存私钥和数字证书,是满足个人身份认证安全级别和存储数字证书的一种选择,不过国内也有相当多的其他品牌型号的USB Key产品可供使用,因此如果大家选择USB Key产品应用的话,应仔细对比各方不同的USB Key产品,方能找到物美价廉的身份认证产品。以下是稿件全文:

银行应用USB Key身份认证方案

  企业概况

  某大国有银行始建于1908年,是中国早期四大银行之一,,总行设在上海。目前,该银行拥有辐射全国、面向海外的机构体系和业务网络。在境内的分支机构有:27家省分行、7家直属分行、营业机构近3000个左右。在纽约、东京、香港、新加坡、汉城设有分行,在伦敦、法兰克福设有代表处。他们与全球100多个国家和地区的800家银行的总分支机构建立了代理行关系。现在,全行员工5.5万人。按总资产排名,该银行位列世界1000家大银行的前100位,已跻身全球银行百强行列。

  为了适应激烈的市场竞争,近年来该银行大力开展网上银行业务。在短短的三年中,该银行完成了网上银行的整体框架构建,形成了以特色信用卡、全国通、外汇宝、基金买卖等功能为支撑的网上银行服务体系和以普通版、大众版、专业版为特征的对公网上银行服务体系,并实现了网上银行的功能完善和业务量的快速增长。然而,随着钓鱼网站、专业偷盗银行账号和密码的木马程序“网银大盗”的泛滥,人们对网上银行的安全性越来越表示质疑。怎样才能加强系统应用的安全性,提升人们对网上银行的信任度,成为各家银行网上银行业务中最为亟待解决的问题。当然,该银行也面临同样的问题。

  挑战

  通常国内网上银行都会分为大众版和企业版两个版本,它们的本质区别在于安全级别不同。用户只要凭借身份证号码、账号和密码就可以在网上自助开通大众版网上银行,操作简便,手续极为简单,但运行后安全保密性较差,唯一的防护措施就是客户在开通时自行设置的登录密码和付款密码。

  而申请专业版网上银行就要复杂得多,首先需要用户本人到银行网点进行业务申请,通过安装应用数字证书和PKI体系实现网上账户资金的交易和转移。

  数字证书是网上银行业务中确认用户身份的唯一标志,具有不可复制性和不可替代性,所有网上交易必须要事先通过数字证书进行安全认证,它可以看作是用户的网上身份证。既然是网上身份认证的唯一标志,确保其安全性就至关重要。普通个人用户常把数字证书存储在电脑硬盘中,这种做法的危险性不言而喻。对于资金交易量较大的企业用户,为了确保其资金安全,该银行强制要求使用更加安全的存储介质以达到更加有效的资源访问控制。经过充分的测试和详细的比较后,他们选择SafeNet iKey2032作为其网上银行企业客户的身份验证工具。

  USB Key解决方案

  SafeNet iKey2032之所以在这样一家大型国有银行竞标中胜出的原因主要源于其突出的产品特性。iKey2032是一款基于USB接口的可移动身份认证设备, 专门针对银行业或其它数字证书用户。它支持数字签名和PKI体系,可生成并储存私钥和数字证书,是满足个人身份认证安全级别和存储数字证书的理想选择。

  ■ 用双因素认证方式替代不可靠的口令

  iKey2032系列采用双因素认证机制,用户需要通过iKey硬件和相对应的PIN码两方面共同确认身份,其安全性、可靠性远远高于仅靠密码保护的传统口令认证方式。作为一种智能卡技术的延伸,用户在使用iKey2032产品时,无需购置昂贵的读卡器设备,只需要将它插入电脑USB口即可进行用户身份确认。

  ■ 硬件实现加密算法确保系统安全性

  iKey2032系列支持公钥体系,可在iKey内部生成密钥对,存储密钥对和X.509数字证书,以及在iKey内部执行签名操作。iKey硬件内部生成密钥对,私钥从生成、管理到销毁始终在Key硬件内部完成,消除了密钥外流的危险性。目前,iKey2032系列通过了 FIPS 140-1, Level 2级认证,该认证为美国最权威的安全产品认证。

  ■ 支持多个CA和PKI应用

  通过与众多软硬件供应商建立战略合作关系,SafeNet iKey2032具备了广泛的安全解决方案支持能力。ikey2032支持多种CA和Microsoft, Entrust, Computer Associates, VeriSign等公司提供的众多PKI应用。另外,由于iKey2032系列支持PKCS#11和Microsoft CryptoAPI,可以方便地与其他多种客户端应用相互集成。

  ■ 应用简单,携带方便

  iKey2032外形小巧、携带方便,用户可以把iKey2032挂在钥匙串上随身携带,因而极大提高了使用的方便性和灵活性。另外,iKey2032支持热插拔,当拔出iKey2032后,系统对话自动关闭。

  应用成效

  为了更好地满足该银行对网上银行认证的需求,SafeNet专门定制设计了用户登陆界面和产品外观。从2004年1月正式启用,到目前为止,该银行总部及各分行已经共计采购iKey2032已超过2万只,各分行反映应用效果良好。现在,该银行正计划将iKey2032 USB Key从企业客户向个人客户推广。其银行电子银行部经理表示:2年来,使用USB Key的数亿笔往上支付交易没有发生过一笔盗窃事件。我们很欣慰地看到,SafeNet身份认证方案很好的提升了我们银行网上银行系统的认证安全性和竞争优势。对使用者而言,他们需要更加方便、快捷的应用,这一点SafeNet iKey2032也表现出色。

2005年9月27日星期二

个人所得税改革的感想

  这几天,新浪网上关于“个税起征点提高到1500元是否合理”这件事讨论的非常热烈,我有几点感慨。

  中国青年报的一篇报道称“纳税人称没感到权利”,根据国家法律规定,税务机关应把征税后的税款支出对外透明,让纳税人知道所缴的税款用在什么地方。而我国目前在这方面做得很不够。

  拿我举个例子,我需要养妻儿,养父母,同时还要纳税养政府。我养政府的钱算起来也不少了,但我却没有得到什么回报,体会到的是生活的艰难,等我老了以后,我不知道我会怎样生活,或许生病之后只能在家等死。

  从纳税的目的来看,个税起征点定在1500元,并且要求全国“一刀切”,规定各地应统一执行该标准,不允许擅自浮动。这显然是为了增加政府的财政收入。因为东部地区几乎所有人的收入都会超过这个标准,因此就成了“人头税”。这恐怕是为了应付庞大的公务员队伍的巨额开销了,或者财政赤字实在太严重。

  对于高收入者的纳税,按照目前的方案,几乎征收了高收入者收入的一半,这是否合理呢?表面上看来,对“富人”征税天经地义,但如此巨额的“抢劫”,当然会让高收入人群想尽办法偷税漏税,事实上,从这些年来的实施效果看,从高收入人群征得的税是非常小的,这种高额比例形同虚设。

  另外我发现一个奇怪的现象,就是中西部的网友似乎对东部地区非常敌视,特别希望多征收东部地区的税收,而赞同1500元“一刀切”的方案,这令人感到很惊讶。同时我也感觉到,中国人的心实在不齐,自己喜欢搞内讧,搞大锅饭,不患寡而患不均。多征收东部的税收,难道这些钱会流到西部去吗?可能吗?

  其实,如果国家真的希望个税改革是调节贫富差距,减轻低收入者负担的话,那就应该将月收入万元以下的全部免税,以上的收统一税率(可以考虑15%)。这样高收入者逃税的动机就轻多了。然后对于数百万遗产征收遗产税,高档消费品征收消费税。这就可以很轻易地实现调节贫富差距。但是我知道这些都是不可能实行的,因为我知道个人所得税的目的根本就不是为了调节贫富差距。

  对于开听证会这回事,又消息说扣除标准可能调至1600元,这据说很有可能是最终的标准,也在我的意料之中。

  说句老实话:征的就是穷人的税,开听证会也就是走走过场罢了。在目前中国这样的社会,只有没本事的人才缴税。那些“有本事”的人在中国活得可多滋润啊!

  特别是那些资本家,拥有这个地球上最廉价的劳动力市场,最吃苦耐劳的劳工,没有工会组织,多么低的工资都可以招到人,弄死了劳工只需要支付一点点钱。消费任何高档的奢侈品都不用交消费税,使用世界上最便宜的没有税的汽油,没有遗产税,富人根本就不需要交个人所得税,因为一切帐都可以记到公司的帐务上。这可真是富人的天堂,穷人的地狱。

  马克思在《资本论》里说,资本家会想尽办法维持一个失业者的“后备军”,这些大军急需为自己寻找生路,于是就会成为资本家们残酷压迫工人的筹码。由于无业人群的存在,资本家便能够把一些恶劣的劳动条件强加给员工(如低工资、无休止的工作时间、过快的工作节奏和极低的社会保障等),并有效地阻止预期利润率的下降。今天的中国,正成为马克思眼中那些资本家的天堂!

2005年9月24日星期六

Z-Blog 1.4 SP2全静态补丁和插件下载

  今天花了些时间将ZBLOG升级到1.4 SP2,静态化补丁插件也同时升级到SP2。

  静态化补丁代码部分的变化还是只修改了c_system_event.asp和c_system_lib.asp两个文件,同时提供的PLUGIN功能新增加两个文件,说明文件一个。因此一共是五个文件。

  使用和安装这个补丁很简单,先下载Z-Blog 1.4 SP2正式版,然后下载Z-Blog 1.4 SP2月光静态版补丁,注意此补丁只能在这个版本上使用,不要在其他版本上使用。将补丁里的两个ASP文件覆盖到原版目录下,catbuild目录放到PLUGIN目录下即可。

  一般用户使用下面3个操作就可以安装好静态化补丁:

  1、下载原版Z-Blog 1.4 SP2

  2、下载月光静态化补丁1.4 SP1。将其中2个文件覆盖原版文件。同时安装PLUGIN。

  3、重新进行文件重建操作,然后进入“插件管理”,点击“静态分类目录文件生成”。

  此时Z-BLOG的目录文件就被静态化了。

  手工修改

  如果你的ZBLOG是自己修改过的版本,那么可以使用下面的操作手动进行静态化修改。其操作较为复杂,不建议使用。

c_system_event.asp 文件修改:

651行修改为:

strArchives=strArchives & "<li><a href="""& ZC_BLOG_HOST & ZC_STATIC_DIRECTORY & "/" & Year(dtmYM(i)) & "_" & Right("00"&Month(dtmYM(i)),2) &  "." & ZC_STATIC_TYPE & """>" & Year(dtmYM(i)) & " " & ZVA_Month(Month(dtmYM(i))) & " (" & objRS(0) & ")" +"</a></li>"

1646-1649行修改为:

s=ZC_STATIC_DIRECTORY & "/" &y&"_"&Right("00"&(m-1),2) & "." & ZC_STATIC_TYPE
t=ZC_STATIC_DIRECTORY & "/" &y&"_"&Right("00"&(m+1),2) & "." & ZC_STATIC_TYPE
If m=1 Then s=ZC_STATIC_DIRECTORY & "/" &(y-1)&"_12" & "." & ZC_STATIC_TYPE
If m=12 Then t=ZC_STATIC_DIRECTORY & "/" &(y+1)&"_01" & "." & ZC_STATIC_TYPE

1652行修改为:

strCalendar=strCalendar & "<p class=""y""><a href="""&ZC_BLOG_HOST &s&""">&lt;&lt;</a>  <a href="""& ZC_BLOG_HOST &ZC_STATIC_DIRECTORY & "/"&y&"_"&right("00"&m,2)& "." & ZC_STATIC_TYPE&""">"&y&"·"&m&"</a>  <a href="""&ZC_BLOG_HOST &t&""">&gt;&gt;</a></p>"

c_system_lib.asp修改:

110行修改为:

Url = ZC_BLOG_HOST & ZC_STATIC_DIRECTORY & "/" & "cat_" & ID & "." & ZC_STATIC_TYPE

1355行修改为:

s=ZC_BLOG_HOST & "catalog.asp?"& t &"page=1"

1374行修改为:

s=ZC_BLOG_HOST & "catalog.asp?"& t &"page="& i

1376行修改为:

s=ZC_BLOG_HOST & "catalog.asp?"& t &"page="& intAllPage

  如果有不愿意手工修改的,就直接下载下面的文件覆盖就可以了。

2005年9月22日星期四

IIS网站防盗链下载的解决方案

  “盗链”的定义是:此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容。 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址(比如一些音乐、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的空间和流量。

  为什么会产生盗链

  一般浏览有一个重要的现象就是一个完整的页面并不是一次全部传送到客户端的。如果请求的是一个带有许多图片和其它信息的页面,那么最先的一个Http请求被传送回来的是这个页面的文本,然后通过客户端的浏览器对这段文本的解释执行,发现其中还有图片,那么客户端的浏览器会再发送一条Http请求,当这个请求被处理后那么这个图片文件会被传送到客户端,然后浏览器回将图片安放到页面的正确位置,就这样一个完整的页面也许要经过发送多条Http请求才能够被完整的显示。基于这样的机制,就会产生一个问题,那就是盗链问题:就是一个网站中如果没有起页面中所说的信息,例如图片信息,那么它完全可以将这个图片的连接到别的网站。这样没有任何资源的网站利用了别的网站的资源来展示给浏览者,提高了自己的访问量,而大部分浏览者又不会很容易地发现,这样显然,对于那个被利用了资源的网站是不公平的。一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负担。

  我遇到的盗链

  我的网站遇到最多的是两类盗链,一是图片盗链,二是文件盗链。曾经有一个访问量极大的网站盗链我网站的图片,一天竟然消耗了数G的流量。同时,我站放的不少几十兆的大型软件也常遭到文件盗链,大量消耗我站资源。

  盗链的解决方案

  其实通过WEB服务器的URL过滤技术,这个伤脑筋的问题会很容易得到解决。 

  如果WEB服务器用的是APACHE的话,那么使用APACHE自带的Url Rewrite功能可以很轻松地防止各种盗链,其原理是检查REFER,如果REFER的信息来自其他网站则禁止访问所需要的资源。

  那么,IIS支持UrlRewrite吗?

  答案很简单,不支持。但是我们可以通过安装第三方服务器扩展让IIS支持。

  目前有一种产品能比较好地支持IIS的UrlRewrite,名字叫ISAPI_Rewrite

  下载地址在: http://www.helicontech.com/download/

  这里只有ISAPI Rewrite的一个LITE版本是免费的,其它都是trial版本。ISAPI Rewrite Lite的版本功能不支持虚拟站点配置,元数据监测和自动缓存清理。 但是基本的UrlRewrite功能都支持。

  如何进行UrlRewrite的设置?

  isapi_rewrite利用正则表达式进行替换规则的表示。

  下面是一个简单的例子,我想让我们的用户输入 http://localhost/test-12314.html 实际上访问的是 http://localhost/test.asp?id=12314 。那么我们的匹配表达式应该是 /test-([0-9]*).html 对应的格式化表达式应该为 /test.asp?id=$1 。

  进行正则表达式的编写的时候,可以利用isapi_rewrite提供的正则表达式测试工具(默认安装提供),进行调试。做好了匹配表达式和格式化表达式,我们可以把它们放到安装目录下的httpd.ini里面。文件保存后,不需重新启动iis即可生效。

  对于我的网站,我防盗链的方法是在httpd.ini里面加入如下语句

RewriteCond Host: (.+)
RewriteCond Referer: (?!http://1.*).*
RewriteRule .*.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O]

  然后重启IIS,这时防盗链就开始起作用了,其他网站盗链过来的请求都会被拒绝。

  至此,我也终于可以摆脱了被盗链的烦恼了。

2005年9月21日星期三

Alexa调整计算方法,中国网站排名再次跳水

  9月13日,国内网站在受到关注的Alexa排名上再次上演集体跳水。包括21CN、Hao123、eNet硅谷动力以及博客网等众多中国站点排名出现大幅下滑,大部分网站排名下滑均在50%以上,其中21CN更是从49名惨跌至697名,Hao123则从61名狂跌至845名。

  Alexa是在中国比较受到关注的全球网站排名,根据介绍,Alexa主要依赖于其全球装机量超过千万的工具条对网民浏览习惯进行监测。目前,影响Alexa排名的主要有两个因素:一是Alexa采集的信息,二是Alexa对这些信息进行深加工的计算方法。

  由于国内目前暂时缺乏类似的排名信息,不少网站都借用于该排名进行业务推广、广告招商以及获取投资等。一位不愿透露姓名的专家表示,国内有不少网站就在通过各种方法对网站进行专门“优化”以提高Alexa排名。在这些带有作弊嫌疑的“优化”过程中,不乏一些知名网站。

  专家介绍,此次国内网站上演的排名高台跳水,主要原因就是Alexa方面已经根据中国网站的类似“优化”调整了计算方法。

  事实上,在去年10月和今年1月底的时候,Alexa就曾经几次进行过调整,其中甚至针对部分作弊比较疯狂的网站实施了清零处理。

  不过,在国内针对Alexa排名的质疑,也如针对它的“优化”一样,一直没有中断过。“Alexa工具条始终只有英文版,一直就没有中文版。”一位专家据此认为其排名对于以中国市场为主的网站并不具备代表意义。

  此前亦曾有报道说,目前已有资深的Web开发工程师可以轻松编写Alexa工具条返回码生成器欺骗其采集服务器,以达到迅速提高某网站排名的效果。(新浪网/金磊)

2005年9月19日星期一

Google提供BLOG搜索服务

  Google公司给其搜索产品家族增添了一名新成员:BLOG搜索。

  本周三上线的这一新的搜索服务处于beta测试阶段,用户可以通过多个网址访问该服务,其中包括http://blogsearch.google.com/http://search.blogger.com/

  据该服务的“常见问题解答”网页上的内容称,Google坚信以BLOG为代表的自出版现象有着美好的前景,希望Blog Search能够帮助我们更有效地探索BLOG世界,促使更多的人加入到这场革命中来。

  新的搜索服务不仅仅只能够搜索Google自己的BloggerBLOG服务,索引数据库将被不间断地更新,内容包括使用英语、法语、意大利语、德语、西班牙语、中文、日语等语言写的BLOG。

  用户可以通过输入关键词进行基本搜索,也可以进行高级搜索,自己指定一些参数,例如在一个具体的BLOG,或用某种语言写的BLOG,或某个作者的BLOG中搜索。

  Google的BLOG搜索服务还向用户提供了订购利用RSS或Atom feed的搜索结果的选项。这意味着,如果用户搜索“卡特里娜飓风”,Google的BLOG搜索服务使他可以在BLOG阅读器中增加一个feed,当Google的搜索数据库中出现新的与搜索关键词“卡特里娜飓风”匹配的新条目时会自动通知用户。(中国计算机世界日报)

2005年9月18日星期日

开始玩真三国无双4猛将传

  今天去签服务器托管的协议,顺便也去电子市场看看,猛然发现《真三国无双4猛将传》游戏已经出售了,天啊,这个游戏不是九月十五日才刚发售的吗?4494日元的游戏这么快D版就出来了啊?如此极品游戏,赶快买来。同时感慨,这样经典的游戏D版竟然只卖5块钱。

  回了家以后就立刻开玩真三国无双4猛将传。说老实话,因为没有时间,真三国无双3猛将传我都没怎么玩,因为人物练的太烂。真三国无双4的人物我可是练的非常好,大把人物都被我练满了(感谢白帝城之战啊)。因此我对真三国无双4猛将传就特别感兴趣。和上一代一样,猛将传可以导入正传的数据,这样人物和武器就都不用重新练了。

  我开始先打了几个外传,如“道术书争夺战”等等,不过我对其另外新增加的一个游戏模式“立志模式”很感兴趣。在该模式中,玩家可以通过自己建立的角色来从一个普通士兵的立场体会真三国无双的世界。

  “立志模式”是专为原创角色准备的,三国系列一直以来都没有能够在原创武将上作出一下新颖的动作,虽然操纵史实上的武将的确其乐无穷,但是“立志模式”的出现相信会弥补玩家心中的遗憾。玩家可以选择性别,脸形,体格以及所属的上司武将。

  在立志模式中,玩家将扮演原创角色,以三国名将部下的身份战斗,在战斗中获得功勋之后可慢慢成为长官的亲信,或者接受其他势力的劝降,在三国的历史世界纵横,角色的命运由玩家自己作主。

  立志模式的主要流程包括以下几项:

  角色作成

  按照水镜的指引,作成玩家身份的角色。

  决定好各组件后,玩家的所属势力将会依最终的武将选择而由魏吴蜀当中决定。   

  自宅

  进行战斗的准备或储存。于战斗后返回这里,可以以支付所获得的“技能点数”来换取技能,或者是换装所获得的防具(编辑武将用组件)。

  概况

  君主会对下一个战斗的概要进行说明。在此之后,会接受到由当时的长官对于有关于军团目标或者是战斗中所应注意事项所做的情报提示。类似无双模式的概况说明般的画面。

  作战讲解

  针对接下来的战斗,进行胜负条件的确认、个人目标的设定,以及武器的装备。会以从好几个选项当中,选择如“10分钟之内击倒100人”之类的形式进行个人目标设定,如果目标达成的话,于战斗结束后,可以获得额外的技术点数。

  战斗

  进行战场动作模式的战斗。

  因为游戏刚开始后的玩家仅是一名兵卒,因此一般攻击最多只能连续攻击2次,再加上无法使用无双乱舞,处于非常弱小的状态。但是其能力将会因为于战场活跃后的身份提升,以及获得技能或武器而获得成长。有关于技能方面,除了有可以让攻击段数等攻击能力成长的技能之外,也准备了可以与我方的弓箭攻击进行协同攻击的“援护射击”,或者是火烧敌据点的“火计”等无双模式所没有的能力。

  长官武将如果于自身附近战斗的话,除了会给予玩家恢复物品外,还会通过下达号令来提升玩家的攻击力,是一个可靠的存在。因此当玩家角色还弱小时,就靠着长官的协助稳步向前吧。

  评定

  任务终了后,玩家会依照于战斗中的活跃度,而获得升迁、武器,或者是技能。

  另外,有时也能获得新的编辑组件以做为奖赏。

  策略

  因玩家的活跃受到注目,而收到由敌方武将所发出之劝说信函,或者是由军师所下达之潜入其它势力的“埋伏之毒”密令。是否接受全看玩家的抉择。

sangoku_musou4

2005年9月11日星期日

要振作起来,重新生活

  昨天心情非常不好,发了一些牢骚和感慨,今天发现有网友留言鼓励,我感觉很感动。

  是啊,我的确应该振作起来,从今天开始就开创自己的事业。我记得自己曾看过一部叫《乱世佳人》的电影,里面的女主人公能够在那么艰难的困境中支撑着活下去,我为什么不可以呢?

  《乱世佳人》的女主人公郝思嘉,一个弱小女子,历经了情场失意、内乱战火、家园重建、爱女夭折、丈夫出走等一连串巨大的困难和挫折,这些打击不是一般的女性可以承受的,但她却始终没有向命运低头,她也从不胆怯,一次次重新把生活的主动权夺回到自己手中。“After alltomorrow is another day.”(“不管怎样,明天就是新的一天了!”)这是她乐观自强人生的最好表白,也是她对命运的生生不息的诠释。

  是啊,人生会有很多痛苦和挫折,如果总是把心思放在后悔上,那么人生将永远都是痛苦的。我为什么不能象《乱世佳人》的女主人郝思嘉那样,振作起来,努力生活呢?郝思嘉的父亲曾经对她说过一句话:“世界上唯有土地与明天同在。”郝思嘉可以守在她的土地上重新创造新的生活,期盼着美好的明天的到来。我难道不可以吗?虽然我没有自己的土地,但至少我还有一个小小的家,我同样可以重新创造新的生活。

  幸福不是上天赐予的,而是靠自己的双手创造的。

2005年9月10日星期六

苦难的人生

  这些天我感觉很悲哀,感觉我的一生过的很失败。我的人生已经度过了这么多年头,眨眼之间已经人到中年,然而我却一事无成。这不知道是我个人的悲哀还是命中注定的不幸。

  为什么我没有成为一个成功者呢?我自己也找不到原因,这才是最大的失败。然而,我会接受一生碌碌无为地过下去吗?我想我不会。因为我是一个好强的人。我曾经是一个快乐的人,整天过着无忧无虑的简单生活,或者说在享受着生活,周末还能去喜欢的地方玩,做喜欢的事情。可是现在呢?我记不清有多少个周末都加班加点继续工作了,我只是感觉我实在累的不行了。

  我现在已经太累了,或许我真的不行了。人生的确是苦难的,我的一生都在还债。还父母的债,还家人的债,没有人能够理解我的痛苦和悲伤,我自己都不明白为什么我的一生会变成这样。

  怎么样的事业才算成功呢?为什么我挣的钱一天比一天多,我的失落感却越来越大呢?当我还是个小孩子的时候,我曾拥有的激情永远都远离我而去了吗?我曾经那么好强,可现在为什么就会有一种无能为力的感觉呢?

  我不愿意做一个失败者,我现在的压力实在太大,我不知道如果我真的失败了,那会是什么样,是的,我相信这一天总会到来的,我必须努力地消耗自己的生命来加倍工作。这就是我痛苦的根源了。

  然而,这一切都会有一个终结的,那一天迟早会来,只是,我不希望我的终结会是这个样子。

2005年9月8日星期四

传说中的深圳四大邪地

  深圳一直有“四大邪地”之说,深圳大学是其中有名的一个。按一般的风水来说坟地是不宜建阳宅的,因为已失地灵,阴气太重,阳宅设在这里会很不好。但象学校、军队这些单位就正好适宜设在这里,因为阳气盛,可以压得住。

  深圳大学

  深大所处的地方是深圳最大的一块邪地,为了镇压它才在上面建这座大学。取的是年轻人血气方刚,可以镇压邪物的意思!深大校园建筑从高空看下去就是一八卦!这想必很多人都知道了。其中还有一栋楼从开始就在建,到现在还只是到了一半。据说只要去继续建就会发生很多意外,导致建不下去了。

  中银大厦

  在红荔路上的几栋红色的尖塔状建筑就是中银大厦。据说这里是过去深圳的刑场,文革时期有很多人冤死在这里,所以要把建筑建成这个样子来镇压。但是据说现在那里还是很猛。有一位富商在那里买了几个单位,住进去没有半年就生意一落千丈,最后还因为不知道患了什么奇怪的疾病死了!真个家破人亡。所以尽管那里的地段很好,但住的人却很少!现在它附近有一个新楼盘在建。可以看见楼盘的会所特意建了一个类似虎口形状的大门对着它,相信也是为了不让对面的邪气过来才这么建的。

  大剧院对面邓小平画像后的一栋楼

  那里是从我小的时候路过就看见的,建了快十几年还是那个样,都是一半就没有动工了,和深大的那栋楼很象。都是一动工就发生意外,所以就放在那里了!有传闻是那里半夜有奇怪的光发出,连三无人员都不敢在那里借宿。希望有人可以补充一下!

  仙湖

  你一定会奇怪,那里现在可是深圳最好的地方啊!

  其实那是因为建了弘法寺才把那里的风水改了的。为了建这个寺,深圳的市长差点被撤职,但已故佛教协会主席赵扑初到过那里就帮辩解,在这里建寺于深圳有重大意义。据知情人士说法,要是不在这个地方建寺庙的话,就会由于城市发展产生唳气无法宣泄而聚集于那里,会衍生出很多怪事,所以要建一座寺庙来化解。

 

浏览器的GreaseMonkey和Trixie插件

  今天,发现了两个很强大的浏览器插件:GreaseMonkey和Trixie。

  GreaseMonkey是新兴的FireFox上的一个插件.通过它用户可以自己改变网页的原码,修改网页的内容.在一方面,GreaseMonkey赋予了网络用户无与伦比的强大功能,让用户可以扩展网络的功能,比如改变Gmail的样式,给Hotmail添加更强大的编辑器,给Google Maps加上自己的标注.甚至有人编写了一个GreaseMonkey的Script大全网站.里面登录了对各个主要网站的改编Script. 可是在另一方面,GreaseMonkey是比RSS对互联网更危险的敌人,因为它可以完全改变网页作者对内容的控制,不但可以变得面目全非,而且连网络赖以生存的广告也可以被消灭的干干净净.难怪最近连Google也跳出来说,反对GMAIL用户使用GreaseMonkey.这实在有些给Google一贯宣传的 "No Evil"的形象有些摸黑,因为首先GreaseMonkey是Google自己的员工Aaron Boodman写的,Google虽然否认GreaseMonkey属于公司支持的产品,但是也没有反对他继续维持.其次,Google自己也发明了篡改网页的工具:Google AutoLink.己所不欲,勿施与人.那么自己做了同样的事情,怎么可以反对别人去做呢?其实原因很简单,GreaseMonkey可以改变Google的命运.Google在事实上已经是一个媒体公司,而它的命脉就在它的广告.如果用户可以把广告都屏蔽掉了,Google也就没戏可唱了.记得有个做市场的人给我们讲设计,他说他希望一个页面里有十个连接,七个是广告,两个是转到另一页再卖广告,最后一个才是真正的连到内容的连接.Google封杀GreaseMonkey也是同出一辙。

  关于 GreaseMonkey 这项技术,我觉得它的意义就在于从此用户对于终端有了完全控制的能力,这个趋势是不可逆转的,GreasemonkIE 倒下去了,Trixie又站起来。我们必须正视这个现实而不是去封杀,去研究这部分用户群体的真实需求并提供相应的服务方案,害怕变化不如去拥抱变化。我认为用户可以分成两种:一种人乐意花功夫甚至是花钱去打造终端界面,另一种人接受缺省的设定。对于第一种用户应该充分放大他的需求,提供对应的便利工具,否则可能会丧失商业机会。

  IE下相对应的GreaseMonkey插件是Trixie,下载Trixie安装以后,你的IE也就支持Greasemonkey了,这两个插件都涉及Javascript管理。当然,你的GreaseMonkey脚本又要开始考虑兼容性的问题了,否则在Firefox下的脚本在IE下将无法运行。如果要安装脚本,只需要将脚本复制到TrixieScripts下即可。

  点击进入Greasemonkey下载页面 http://greasemonkey.mozdev.org/

  点击进入Trixie下载页面 http://www.bhelpuri.net/Trixie/Trixie.htm

2005年9月5日星期一

鲇鱼效应:创新者得天下

  相传,挪威人从深海捕捞的沙丁鱼很难活着上岸,抵港时如果鱼仍然活着,卖价就会高出许多,所以渔民们千方百计想让鱼活着返港。但种种努力都归失败。后来有位老渔翁发现了一个成功的秘密:鲇鱼效应。原来鲇鱼是沙丁鱼的天敌,在沙丁鱼群里适量地放入一些鲇鱼,就可以人为地制造一种紧张空气,沙丁鱼一见到鲇鱼就惊恐万状、四处逃窜,于是生命力大为增强,成活率大大提高。这样一来,一条条活蹦乱跳的沙丁鱼被运回了渔港。后来,人们把这种现象称之为“鲇鱼效应”。

  事殊理同,在IT界里引入一些类似“鲇鱼式”的企业,通过他们挑战性的创新来打破昔日的平静,不仅可以激活整个业界的活力,而且还能有效地实现优胜劣汰的自然进化论。

  这一两年,互联网重新进入了充满创意的时代,各种创新层出不穷。仔细观察后你会发现,互联网已经从过去的围着门户转,变成了围着搜索引擎转。在有关互联网的新闻中,搜索引擎相关的消息占去了很大的比重,我们从来没有像今天这样关注搜索技术的发展。雅虎、微软、亚马逊这些跨国巨头纷纷加大了搜索技术的投入,国内搜索市场的争夺也是精彩纷呈。

  这种变化是怎么发生的?我想主要原因大概有两个。

  首先,信息日益趋于分散,人们对精确地查找信息有了更高的需求。过去,门户网站的站内资源和站内搜索,就可以解决大部分人的信息需求。现在,越来越多的信息并不是由门户网站提供的,这是去中心化的必然结果。实际上,RSS成为去中心化以后的一种关键技术,它让分散的信息得以按用户个人的需求重新聚合,但仍然偏高的技术门槛,把大部分用户挡在了信息聚合之外。这样,用户对搜索的依赖就空前地加强了。

  另一个重要原因是Google。直到Google出现以后,搜索才重新回归互联网主流。在Google之前,曾经有过很多搜索引擎公司,它们不是转型门户网站,就是被收购甚至无声无息地死去。门户网站的崛起,加上互联网泡沫的破灭,加速了第一代搜索技术的死亡。Google是一家迄今仍然保持持续创新活力的公司,Google的存在已经让从前的巨头感到严重的威胁。Google跑多快,大家必须跟着跑多快,没有人愿意眼睁睁看着Google夺走自己的用户和所有的风头。可以说,Google已经成为互联网市场的一条可怕的“鲇鱼”。

  互联网是一个靠技术创新驱动的产业,在这个产业中,有Google在,是一件好事,它以自己不断的创新,推动了整个互联网创新的步伐。

  因此在竞争激烈的IT界,只有抓住时机、不断创新才可能立于不败之地。(原载:keso's blog

2005年9月4日星期日

FireFox开发插件Web Developer

  今天发现了一个FireFox的强大开发插件Web Developer:其拥有强大的CSS调试和Form调试能力,对页面的分析非常全面,可以禁止页面的任一内联、文档、和外部CSS,可以直接编辑当前CSS,可以直接加载本地的CSS,可以用鼠标点击查看页面内任一元素的CSS,可以查看盒子模型结果,这还只是其功能一,其他的功能太多了,比如表单的POST和GET功能相互转换,检查XHTML和CSS语法,禁止一切可以禁止的,包括Cache、Cookie、图片、Java、Js、Referrer等等……如果你需要经常调试页面的话,这个插件能极大满足你的需求。

  Web Developer作为Firefox的插件存在,主要功能表现在几个重要的方面:

  对页面中的文本、图像、媒体文件进行控制,对网页所应用的CSS文件的id与class辅助查看,表格辅助查看,可以实现修改CSS文件实时显示出得到的页面效果等等。

  Web Developer插件能够帮助我们对CSS网站进行分析,我们使用Firefox对网页进行浏览,运用Web Developer插件不仅仅只是能看到对方的源代码,还能方便的分析出页面的布局结构,CSS书写方式,鼠标所在位置的id或class是什么等等,使我们能迅速的理解、学习别人的成功经验,进而更加方便快捷的掌握CSS布局技术。 

2005年9月2日星期五

无神论和灵魂

  由于对碟仙的回忆,使得我不得不对无神论和灵魂得理论再做一些深入的探讨。

  无神论是一种认为灵魂是不存在的哲学思想。

  今天人们说无神论一般是指完全否定任何超自然,包括一个与肉身无关的灵魂的存在。

  在西方国家,“无神论”一般都指“一种认为根本没有神的理论”,而在中国大陆,一般的无神论者其实只是不可知论(没有宗教信仰)。

  灵魂在很多宗教思想都存在,指人类超自然及非物质的组成部份。许多宗教都认为,灵魂居于人或其他物质躯体之内并对之起主宰作用,它们亦可脱离这些躯体而独立存在。对于不同的宗教和民族,他们对灵魂有不同的解释。

  中国民间认为,灵魂分作“魂”和“魄”两部份,并有“三魂七魄”之说。传统上认为,当一个人受到惊吓,可能会使魂魄离开身体,若不好好处理的话,人就会步向死亡。因此,当有人被吓至昏迷之时,民间会举行一种特别的“招魂”仪式,意图使昏迷的人起死回生。

  中国的传统从某种程度上说是一种不可知论,儒教为其典型。孔子所言:未知生,焉知死。很典型地说明了东方的这种思想。不知道如何过这一生,而去探讨死后的问题是荒谬。在谈到超自然现象时,孔子也表现出一种虔诚而敬畏之心:“敬鬼神而远之”,不问其有无,作为一种信仰,可以去敬,当然不能亲近,不要从鬼神那里得到什么,而是以敬鬼神之心敬奉人事。

  无神论者否认灵魂的存在,所以他们不单不信死后生命,也相信当人死后,就不再在世上存在。然而,现代中国的所谓“无神论”则完全教条化和庸俗化,即自认为自己是“真理中的真理,科学中的科学”,对其他的哲学思想或者超自然现象一律采取否定和打压的态度,认为其“愚昧”、“迷信”,然而对于其自身理论的缺陷却视而不见,说世界上没有灵魂,但为什么没有呢?解释的方法就是:因为我是真理,所以我是真理,不同说法都是谬论,要么就是欺骗和迷信,总而言之就是说我是绝对的不可质疑的真理。然而实践证明,任何理论都是有缺陷的,没有所谓真理中的真理。人类对于自然科学的认识是逐步的,人类不可能已经一下子就掌握了所有自然科学的真理。因此,只有正确和科学的态度才能得出正确的结论,遇到无法解释的现象时,不能采取回避和无视的态度,而要实事求是地针对其现象进行认真研究。

  在调查很多濒临死亡临床案例后,有一部分科学家相信灵魂的存在,不过不是以上很玄乎的非物质东西,而可能是一某种形式存在的能量场。据称有医生让濒临死亡的病者躺在一个大秤上,然后量度他们死后体重的变化,并发现每个人在死后都立即减少了20多克的体重。他们推论,这个重量就是大的灵魂的重量,并以能量的形式离开了肉体。而在人死后,这种能量场会依然存在。
 

2005年9月1日星期四

关于碟仙的回忆

  有一些超自然的东西,当你亲身经历过时,才可能相信,而且越想越后怕。因为先天的灌输式教育,我曾经是一个坚定的无神论者(或者叫没有宗教信仰者),然而,大学的那次碟仙经历却一下改变了我的思想,我开始明白,有一些神秘的超自然现象是目前科学所根本无法解释的。

  我的确永远也忘不了那一天,一九九五年九月二十六日,闰八月,西安。西安是一个千年古城,据说是一个阴气很重的地方,经常发生一些奇怪的事情,那时我还在西安读大学,大学的生活非常无聊,于是在闰八月的时候,男生宿舍流行起了玩碟仙。

  我向来不相信什么牛鬼蛇神之类乌七八糟的东西,也没在意,有一天晚上,同宿舍一个人惊恐地进来,说碟仙猜到了他想象的数字,并且能算命,碟子还能动。我感到挺惊讶的,那天晚上正好他们还要请碟仙,我于是就去旁观看看到底是怎么一回事。

  这种仪式我还是第一次参加,仪式是由一个“八维”的人和三个“七维”的人主持,共同来请碟仙。请碟仙的规矩还不少,蛮讲究的,要求必须在月亮运动到某一个特殊角度的一天的午夜(最好是闰八月);必须在阴气非常重的地方,如漆黑而没有光线的旧屋;在阴气重的时辰开始,如亥时(21-23点为亥时);窗户必须要打开;玩时人不能太多(10个以下,奇数,女多男少,以加重阴气);主持人面南背北;桌子中央放一只蜡烛;碟子最好用旧碟,旧蝶才会有“仙”依附;要用铅笔在纸上写一些特殊的符号。

  当时是晚上十一点四十五分,面南背北的男生宿舍里,可惜只有一个女生在,条件基本符合。那四个人开始进行所谓的“作法”。只见他们念念有词,不知道在叨咕什么,我仿佛看到几个神汉和巫士,感觉蛮可笑的。十二时十分,放在中间的碟子忽然动了起来,以他们的说法,碟仙驾临了。大家都开始兴奋起来。

  碟子自动动起来时,则可开始问问题,放一手指(右手中指)于碟背,就可以问碟仙了。他们问了很多无关紧要的问题,我也很想上去试一试,于是把手指放上去。这位百岁的女碟仙说我是七维的。然后我就让碟仙猜我想的数字,我心里默想了一个数字9,碟子开始似乎犹豫了一下,然后慢慢的指向了9这个数字,我简直惊呆了。我怎么也没有想到这么神奇、太不可思议、太难以理解了,为什么我心里想的东西,碟仙能够知道?这怎么可能呢?可是事实就是千真万确的发生在我眼前了啊。我再也不能以一个冷眼旁观者的身份来看待它了。最后,我和另外两个无神论者一起放手指在碟子上,想让它走到“否”字上,碟子真的慢慢走向了“否”字。就这样一直玩到了一点半,几个主持才把碟仙送走。

  回去之后我久久无法入睡,对于这种无法解释的现象,只有亲身经历过才会感到如此震惊。我至少已经非常坚信有“心灵感应”这种超自然现象存在。我所想象的东西可以神秘地传出去,并被感知到。更进一步,这个世界上真的有“灵魂”存在吗?我原先所坚信的无神论怎么来解释我所经历的这一切呢?

  有人说“碟仙”就是一场骗局,我以前也相信,可是现在不同了,我总不能不相信自己的眼睛和感觉啊?这种超自然力的确是千真万确地存在的。

  当然,以我自己的亲身经历,我也有几种不同的假设来解释:

  假设一,的确有一种“碟仙”存在,它不是由物质组成,来无影去无踪,没有质量也没有能量,或者说它就是一种所谓的灵魂,但是它可以把放手在碟子上人的能量获取,形成一种能量场,这种能量场使碟子可以发生运动,它还可以和人的意识进行神秘的交流,不必通过语言等其他任何形式,是一种“灵魂之间的交流”。

  假设二,根本不存在什么“碟仙”,一切都是由其中一个有超自然力的人完成的,他可以用意志来移动物体,并用心灵探知他人内心的事物,这算是一种特异功能,通过意志产生可怕的能量。

  后来看到一些说法,说可能和催眠术和暗示有关,但是我不同意这种说法。

  催眠术是运用暗示等手段让受术者进入催眠状态能够产生神奇效应的一种法术。催眠是以人为诱导(如放松、单调刺激、集中注意、想象等)引起的一种特殊的类似睡眠又非睡眠的意识恍惚心理状态。其特点是被催眠者自主判断、自主意愿行动减弱或丧失,感觉、知觉发生歪曲或丧失。在催眠过程中,被催眠者遵从催眠师的暗示或指示,并做出反应。催眠的深度因个体的催眠感受性、催眠师的威信与技巧等的差异而不同。催眠时暗示所产生的效应可延续到催眠后的觉醒活动中。

  根据我的判断,那晚上的经历绝对不是催眠,我当时也不处于被催眠状态。因为我自己没有闭眼,思维非常活跃,很紧张、兴奋、甚至一点点害怕。这和被催眠后的状态完全不相同。并且我也没有发现当时有人在施展催眠术。

  事后我也做过试验,在白天将手放在碟子上,然后用意念想着让碟子移动,但无论我尝试了多少次,只要我的手指不用力,碟子都无法移动。因此有人说是心理效果,是过度夸大了意念的力量,如果没有被催眠的话,只通过意念绝对不能让碟子移动的。

  时间已经过去了很多年,我也离开了西安那座古老的城市,但是那一次经历却一直都在令我感到震惊。我经历的那些事情没有一个人能够用现在的科学理论来解释。或许人类在整个宇宙依旧是非常渺小的,我们不知道的事情实在是太多了。人的死亡或者并不是一个人生命的终结,而是另一种生命的开始?这些东西想来想去也挺烦的。还是孔子说的对:未知生,焉知死。不知道如何过这一生,而去探讨死后的问题是荒谬。所以不问其有无,作为一种信仰,可以去敬畏,但是不能亲近。过于沉迷在这上面也是没有什么好处的。
 

ZBLOG 1.4 SP1的静态补丁和插件发布

  今天花了些时间将ZBLOG升级到1.4 SP1,静态化补丁也同时升级到SP1,并支持插件方式的运行。

  静态化补丁代码部分的变化还是只修改了c_system_event.asp和c_system_lib.asp两个文件,同时提供的PLUGIN功能新增加两个文件。因此一共是四个文件。

  使用和安装这个补丁很简单,先下载Z-Blog 1.4 SP1正式版,然后下载Z-Blog 1.4 SP1月光静态版补丁,注意此补丁只能在这个版本上使用,不要在其他版本上使用。将补丁里的两个ASP文件覆盖到原版目录下,catbuild目录放到PLUGIN目录下即可。

  一般用户使用下面3个操作就可以安装好静态化补丁:

  1、下载原版Z-Blog 1.4 SP1

  2、下载月光静态化补丁1.4 SP1。将其中2个文件覆盖原版文件。同时安装PLUGIN。

  3、重新进行文件重建操作。

  此时Z-BLOG的目录文件应该被静态化了。

  如果你的ZBLOG是自己修改过的版本,那么可以使用下面的操作手动进行静态化修改。其操作较为复杂,不建议使用。

c_system_event.asp 文件修改:

648行修改为:

strArchives=strArchives & "<li><a href="""& ZC_BLOG_HOST & ZC_STATIC_DIRECTORY & "/" & Year(dtmYM(i)) & "_" & Right("00"&Month(dtmYM(i)),2) &  "." & ZC_STATIC_TYPE & """>" & Year(dtmYM(i)) & " " & ZVA_Month(Month(dtmYM(i))) & " (" & objRS(0) & ")" +"</a></li>"


1643-1646行修改为:

 s=ZC_STATIC_DIRECTORY & "/" &y&"_"&Right("00"&(m-1),2) & "." & ZC_STATIC_TYPE
 t=ZC_STATIC_DIRECTORY & "/" &y&"_"&Right("00"&(m+1),2) & "." & ZC_STATIC_TYPE
 If m=1 Then s=ZC_STATIC_DIRECTORY & "/" &(y-1)&"_12" & "." & ZC_STATIC_TYPE
 If m=12 Then t=ZC_STATIC_DIRECTORY & "/" &(y+1)&"_01" & "." & ZC_STATIC_TYPE

1649行修改为:

 strCalendar=strCalendar & "<p class=""y""><a href="""&ZC_BLOG_HOST &s&""">&lt;&lt;</a>  <a href="""& ZC_BLOG_HOST &ZC_STATIC_DIRECTORY & "/"&y&"_"&right("00"&m,2)& "." & ZC_STATIC_TYPE&""">"&y&"·"&m&"</a>  <a href="""&ZC_BLOG_HOST &t&""">&gt;&gt;</a></p>"


之后属于增加的代码部分:

在1201行前增加一行:
 MakeCatReBuild

在1206行后增加以下代码:

'*********************************************************
' 目的:    All Category ReBuild
'*********************************************************
Function MakeCatReBuild()

 Dim objPage
 Dim objRS
 Dim ArtList
 Dim cate_id,cate_year,cate_month

 '生成分类目录文件开始
 Set objRS=objConn.Execute("SELECT cate_id FROM blog_Category ORDER BY cate_id ")
 While Not objRS.eof
  '取得目录ID
  cate_id=cstr(objRS("cate_id"))
  '生成一个分类目录文件
  Set ArtList=New TArticleList
  ArtList.LoadCache
  ArtList.template="CATALOG"
  If ArtList.ExportByCache(Request.QueryString("page"),cate_id,Request.QueryString("auth"),Request.QueryString("date"),Request.QueryString("tags"),ZC_DISPLAY_MODE_ALL) Then
   ArtList.Build
   ArtList.FileName="cat_" & cate_id
   ArtList.Save
  End If
  Set ArtList=Nothing
  objRS.MoveNext
 Wend
 objRS.Close
 Set objRS=Nothing
 '生成分类目录文件结束

 '生成日期目录文件开始
 Set objRS=objConn.Execute("SELECT year(log_posttime) as cate_year,month(log_posttime) as cate_month FROM blog_Article group by year(log_posttime),month(log_posttime) ")
 While Not objRS.eof
  '取得目录ID
  cate_year=cstr(objRS("cate_year"))
  cate_month=cstr(objRS("cate_month"))
  '生成一个日期目录文件
  Set ArtList=New TArticleList
  ArtList.LoadCache
  ArtList.template="CATALOG"
  If ArtList.ExportByCache(Request.QueryString("page"),Request.QueryString("cate"),Request.QueryString("auth"),cate_year & "-" & cate_month,Request.QueryString("tags"),ZC_DISPLAY_MODE_ALL) Then
   ArtList.Build
   ArtList.FileName=cate_year & "_" & right("00"&cate_month,2)
   ArtList.Save
  End If
  Set ArtList=Nothing
  objRS.MoveNext
 Wend
 objRS.Close
 Set objRS=Nothing
 '生成日期目录文件结束

 MakeCatReBuild=True

End Function
'*********************************************************

c_system_lib.asp修改:

110行修改为:
Url = ZC_BLOG_HOST & ZC_STATIC_DIRECTORY & "/" & "cat_" & ID & "." & ZC_STATIC_TYPE

1346行修改为:
s=ZC_BLOG_HOST & "catalog.asp?"& t &"page=1"

1365行修改为:
s=ZC_BLOG_HOST & "catalog.asp?"& t &"page="& i

1376行修改为:
s=ZC_BLOG_HOST & "catalog.asp?"& t &"page="& intAllPage

如果有不愿意手工修改的,就直接下载下面的文件覆盖就可以了。