2008年02月
我们已经讨论了 Windows PowerShell 如何使用对象在 cmdlet 之间传输数据,并通过使用 Get-Member 和 Format cmdlet 查看对象的特定属性来对查看有关对象详细信息的几种方法进行了说明。对象的作用是,允许您访问许多复杂的数据,并且它是相关的。通过某些简单的技术,就可以进一步操作对象以进行更多工作。在本章中,我们将讨论可对其进行操作的某些特定对象的类型和操作方法。阅读全文>
发表于 @ 2008年02月28日 23:59:00|评论(loading...)|编辑
在 Windows PowerShell 驱动器中看到的元素(例如文件系统驱动器中的文件和文件夹)和 Windows PowerShell 注册表驱动器中的注册表项在 Windows PowerShell 中均称为项。用于处理这些项的 cmdlet 的名称中具有名词项。阅读全文>
发表于 @ 2008年02月28日 23:58:00|评论(loading...)|编辑
Windows PowerShell 使用名词项来表示在 Windows PowerShell 驱动器中找到的数据。当处理 Windows PowerShell FileSystem 提供程序时,项可以是文件、文件夹或 Windows PowerShell 驱动器。在大多数管理设置中,列出并处理这些项是一项重要的基本任务,因此我们应对这些任务进行详细的讨论。阅读全文>
发表于 @ 2008年02月28日 23:57:00|评论(loading...)|编辑
Windows PowerShell 驱动器是一种数据存储位置,您可以像访问 Windows Powershell 中的文件系统驱动器一样对其进行访问。Windows PowerShell 提供程序会为您自动创建某些驱动器,例如,文件系统驱动器(包括 C: 和 D:)、注册表驱动器(HKCU: 和 HKLM:)以及证书驱动器 (Cert:),您还可以创建您自己的 Windows PowerShell 驱动器。这些驱动器十分有用,但它们仅在 Windows PowerShell 中可用。无法使用其他 Windows 工具(例如,Windows 资源管理器或 Cmd.exe)来访问这些驱动器。阅读全文>
发表于 @ 2008年02月28日 23:55:00|评论(loading...)|编辑
Windows PowerShell 为您提供了多个用于直接控制数据输出的 cmdlet。这些 cmdlet 具有两个重要的共同特征。第一,它们通常都将数据转换为某种文本形式。这是因为它们要将数据输出到需要接受文本输入的系统组件。这意味着它们需要以文本形式表示对象。因此,文本格式将与 Windows PowerShell 控制台窗口中所显示的格式相同。第二,这些 cmdlet 都使用 Windows PowerShell 动词 Out,这是因为它们要将信息从 Windows PowerShell 中发送到其他位置。阅读全文>
发表于 @ 2008年02月28日 23:53:00|评论(loading...)|编辑
Windows PowerShell 提供了一组 cmdlet,使用这些 cmdlet 您可以控制要为特定对象显示的属性。这些 cmdlet 的名称均以动词 Format 开头。它们允许您选择一个或多个要显示的属性。Format cmdlet 包括 Format-Wide、Format-List、Format-Table 和 Format-Custom。本文中将仅介绍 Format-Wide、Format-List 和 Format-Table cmdlet。每个格式 cmdlet 都具有默认属性;如果未指定要显示的特定属性,则会使用这些默认属性。此外,每个 cmdlet 都使用同一参数名称 Property 来指定要显示的属性。由于 Format-Wide 仅显示单个属性,因此其 Property 参数只获取单个值,但 Format-List 和 Format-Table 的属性参数将接受一组属性名称。阅读全文>
发表于 @ 2008年02月28日 23:51:00|评论(loading...)|编辑
Windows PowerShell 在设计上集成了源自众多不同环境的概念。尽管使用过特定外壳程序或编程环境的人可能会熟悉其中几个概念,但很少有人了解所有这些概念。查看这些概念可帮助您概括了解本外壳程序。阅读全文>
发表于 @ 2008年02月28日 23:45:00|评论(loading...)|编辑
本节介绍可以自定义 Windows PowerShell 以最大限度地满足您的需要的几种方法。阅读全文>
发表于 @ 2008年02月25日 00:42:00|评论(loading...)|编辑
Windows PowerShell 的最强大功能之一是,它允许您使用在文件系统中用来导航的相同熟悉方法在许多不同的数据存储区中导航。阅读全文>
发表于 @ 2008年02月25日 00:37:00|评论(loading...)|编辑
本节介绍使用 Windows PowerShell 的基本知识。首先介绍 Get-Help cmdlet,该 cmdlet 显示有关 Windows PowerShell 中 cmdlet 和概念性主题的信息。然后,介绍几个基本的 cmdlet,说明如何使用 cmdlet 参数,然后说明如何设置 cmdlet 输出的格式以获取有用显示中所需的数据。最后的主题说明如何使用别名以便更容易地使用 Windows PowerShell,如何在 Windows PowerShell 中运行传统的 Windows 程序,以及如何管理错误。阅读全文>
发表于 @ 2008年02月25日 00:30:00|评论(loading...)|编辑
与其他外壳程序一样,Windows PowerShell 支持完全交互式环境。在提示符下键入命令后,将处理该命令并在外壳程序窗口中显示输出。可以将命令输出发送到文件或打印机,也可以使用管道运算符 (|) 将输出发送到其他命令。阅读全文>
发表于 @ 2008年02月24日 23:55:00|评论(loading...)|编辑
Laing明确地指出:“Windows Server 2008将是我们开发的最后一款32位操作系统”。在“2008”版本以后,我们将向64位的操作系统过渡。今天,很多微软的产品都升级到了64位,因为我们已经充分认识到64位计算所带来的好处。Exchange Server 2007、Windows计算集群服务、Windows Server Virtualization 等都是64位的,因为它们带来的好处是意义重大的。阅读全文>
发表于 @ 2008年02月22日 11:35:00|评论(loading...)|编辑
PowerShell 开发代号为Monad, 是支持 Windows XP/Server 2003/Vista/Server 2008操作系统的脚本语言。包括 Cmd.exe 、SH、KSH、CSH以及BASH Unix在内的大多数外壳程序的操作方式都是在新的进程中执行命令或实用工具程序,并以文本格式向用户显示结果。多年以来,许多文本处理实用工具程序,如sed、AWK 和 PERL,都已逐渐发展为支持这种交互模式。阅读全文>
发表于 @ 2008年02月18日 13:38:00|评论(loading...)|编辑
通常,当程序接受并且使用来自不可信数据源的输入时,就有安全漏洞问题。看看telnet守护程序(Windows中的术语是服务)telnetd,该程序使用DARPA设计的TELNET协议提供远程终端访问服务。这个守护程序通常以超级用户(管理员)的特权运行,并且可以从远端接受环境变量的值,这些环境变量允许远端用户指定一些设置,例如编辑器和打印机的偏好以及终端设置等。但是,有一些环境变量会从根本上改变程序运行的方式。特别是以下这些,PATH环境变量指定了某些函数,例如popen,搜索程序的目录列表;IFS指定了命令行解释器在解析命令行输入时将哪个字符视作空格;而LIBPATH则指定了寻找动态库的目录列表。所有这些环境变量都可以被恶意设置,欺骗特权程序去以提升了的权限运行恶意代码。为了避免这些问题,本书提供的源代码集中的telnetd程序的代码特别设计了一个函数,该函数会从用户提供的(不可信)环境中剔除可能会被误用的值(见图3-7[1])。这种方法被称为黑名单(blacklisting),在安全领域通常来说是一种不太合适的策略。因为在列出可能会被利用的元素时,很容易就会漏过一些。阅读全文>
发表于 @ 2008年02月14日 10:46:00|评论(loading...)|编辑
在检查代码、清除安全漏洞的时候,有一个值得关注的目标就是一些经常会被误用而导致程序有漏洞的API函数。其中的一部分函数(例如在3.3节研究的access系统调用,以及C库函数strcpy)的接口本质上就是不安全的。这些年来,很多这种问题API已经被更加安全的替代品取代了。然而,为了保持向后兼容,这些不安全的函数仍然存在。另外,替代的函数通常是特定于操作系统的,因此比原来的不安全函数的可移植性差。另外一些函数,尽管它们本质上不是不安全的,但是通常会被不适当地用在安全关键的环境中(没有经过有针对性的设计),或者使用的方式太过随意,容易被恶意用户利用。最后,有些函数,例如tmpfile、getpass、getopt和syslog,通常就实现得容易被攻击。尽管其最新的实现是安全的,但是并不一定总是能够保证在你检查的系统上运行着的就是正确的版本。在后续各小节中,我们将研究一些具有代表性的API问题。阅读全文>
发表于 @ 2008年02月13日 10:00:00|评论(loading...)|编辑
也许有不少朋友遇到过下面这两种情况:●你和同事一起出差,同住一间房,但是宾馆的房间里只有一条网线,只能允许一台电脑上网,又没有无线网络设备······这时该怎么办呢?●家里有一条ADSL宽带(当然不仅限于ADSL,其他接入方式也可),没有无线路由器,但是却有两台以上的电脑要同时上网,该怎么办呢?在Vista出现以前,如果遇到这种情况,也许就只能让一台电脑上网,但是Vista出现以后,即使没有无线网络设备,也能让两台或多台电脑同时上网。在介绍如何解决上述问题之前,我们先来总结一下上述两种情况中的网络环境,以有助于该方法是否真的适合你。阅读全文>
发表于 @ 2008年02月11日 23:47:00|评论(loading...)|编辑
12.XAJAX 通过Javascript直接调用PHP函数。它使用Javascript stub来调用PHP脚本中的函数,对象方法,和类方法。服务器端响应由于xajax响应对象创建,该对象提供非常多的命令比如:给一个HTML元素赋值,显示一个警告对话框等。还支持自定义脚本输出。所有特定浏览器代码(如使用XMLHttpRequest)都是抽象的,并且发送各种数据类型到服务器端都非常容易实现。xajax提供多种配置选项目以便易于与现存web应用或框架相集成。它的Javascript核心简洁明了,而且可以通过覆盖来支持更多的高级Javascript功能。阅读全文>
发表于 @ 2008年02月09日 17:07:00|评论(loading...)|编辑
利用竞态条件进行攻击的一般方式是,特权代码代表非特权用户检查文件的访问权限,然后在该特权代码对文件做进一步的操作时,假设仍然是可以访问的。攻击者通常是在权限检查与其他文件操作之间改变目标文件,以利用竞态条件进行攻击。由于值得攻击的文件通常位于攻击者没有权限读或写的目录中,常用的手段是建立一个符号链接,指向攻击者被允许处理的文件,激活有漏洞的程序对该链接进行操作,然后在这个过程中修改链接,让它指向攻击者想要访问的文件。阅读全文>
发表于 @ 2008年02月03日 23:19:00|评论(loading...)|编辑
无论是Ajax还是Ruby,它们都是2006年的热门,它们曾在技术社区内引起了很大的轰动,同时也为国内的计算机图书市场增添了几分热闹。在“当当网2007年度图书畅销榜”(取前100名)中,Ajax类图书销售的前二名分别是《Ajax实战》和《Ajax基础教程》,分别排第21名和第23名;ROR类图书只有1本上榜——《Programming Ruby中文版(第二版)》。在“互动网2007年度销售排行榜”(前100名)中,Ajax类图书只有一本上榜,即《Ajax实战》,排名90;ROR类图书只有《The Ruby Way(中文版)》上榜,排名73。从这些销售“战绩”来看,这两类图书的销售情况远不如人们的预期,尤其是ROR类图书,近乎有些让人“失望”,这也许是为什么07年国内没有更多的此类书出版的原因吧。阅读全文>
发表于 @ 2008年02月01日 23:28:00|评论(loading...)|编辑
北京时间2月1日19:40分,美国当地时间06时40分,微软宣布溢价62%收购雅虎,计划于2008年下半年时候完成。收购案现金加股票,总计涉及446亿美元。微软认为,两家公司的合作可以在四大领域产生协同效应:用户规模扩大产生经济效应,以及为广告客户增加价值;合并后的工程师团队可加速创新;通过削减冗余支出可提升运营效率;增强视频和移动等新兴用户体验方面的创新能力。阅读全文>
发表于 @ 2008年02月01日 22:07:00|评论(loading...)|编辑
在检查C/C++代码时,最常见到的安全漏洞就是缓冲区溢出(buffer overflow或buffer overrun)。对已经被利用的安全漏洞所做的分析表明,多达50%的漏洞源于缓冲区溢出。缓冲区溢出产生的原因是粗心的代码在特定数据结构的范围之外进行写入操作。不管使用何种语言,不小心的话都会出现这种问题:一段错误的代码序列对程序维护的数据结构的错误位置进行写入操作,导致程序工作不正常。在C/C++程序中,这个问题尤其严重,原因是当前大多数C/C++编译器与运行时环境的设计,允许使用指针和数组下标对应用的数据做不受限制的访问,并且还允许执行位于应用数据区与栈区的代码。因此,在一般的C/C++程序中,一个指向数组范围之外的数组下标将会存取对应内存位置处的数据,而且是可读可写的。同样的情况,如果是Java程序的话,会导致ArrayIndexOutOfBoundsException异常;如果是Perl程序的话,会自动增加数组的大小。阅读全文>
发表于 @ 2008年02月01日 21:19:00|评论(loading...)|编辑