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的搜索数据库中出现新的与搜索关键词“卡特里娜飓风”匹配的新条目时会自动通知用户。(中国计算机世界日报)