Monthly Archives: 十一月 2010

ASP.NET安全更新发布

[原文发表地址]:ASP.NET Security Update Now Available [原文发表时间]:2010/9/28 12:59 PM 今早微软发布了一个安全更新,来修复上个星期我在博客里提到的ASP.NET的安全漏洞。我们建议你尽快在你的Web服务器上安装它。 常见问题/解答 下面是大家问得一些常见问题的解答: 这个补丁需要我修改什么代码吗? 不需要。这个补丁不需要你更改现有的ASP.NET程序的任何代码或者设置。 装了补丁,还需要权宜方案吗? 不需要。补丁不再需要我们在上个星期公布的安全权宜措施。那些临时措施只是在补丁发布之前用来保护你的。装上补丁后就不再需要它们了。 在作业服务器上安装补丁会有什么影响吗? 如果你在作业服务器上安装补丁,服务器可能有一段时间是脱机的(虽然不要求重启操作系统)。你需要按情况计划和协调升级过程。 重要—如果你的站点或程序是运行在Web农场的多个Web服务器上,你需要确保在所有(而不是一部分)的机器上安装补丁。这是因为补丁更改了ASP.NET一些功能的加密/签名行为,打上补丁和没有打补丁的服务器之间的加密/签名行为不是兼容的。如果你采用的是Web农场拓扑结构,你可能要从轮作里拿出一半的服务器升级,接着再通过交换服务器来避免不兼容的情况(这样升级过的服务器在轮作,而没有升级过的服务器从轮作中移出,并打上补丁)。 这个补丁可以用在SharePoint上吗? 是的。在打上补丁的SharePoint上进行测试时,我们没有发现任何问题。你需要在SharePoint服务器上安装它以避免遭受攻击。 安装后可以卸载补丁吗? 是的。补丁支持安装和卸载。请注意,一旦你卸载了补丁,那你的系统就不再受保护了。 下载补丁 我们今天通过微软下载中心来发布安全更新。一旦我们做完分发测试后,几天后我们也会通过Windows Update和Windows Server Update Service发布它。一旦补丁放在Windows Update上,你就可以在机器/服务器上运行Windows Update,Windows Update会自动为你选择正确的补丁下载并安装它。 更新:现在你可以通过Windows Update和Windows Server Update Service (WSUS)来安装补丁。在这里你可以获取更多的信息。 如果你是在微软下载中心直接下载补丁,那你需要手工选择并下载相应的补丁。下面的表格是今天微软下载中心上所有可用的补丁列表。补丁根据Windows操作系统(还有相应的服务包和处理器架构)分类。每个操作系统栏里,都包含了所有它支持的.NET版本列表,并包括了相应补丁程序的知识库(KB)和下载链接。 在下表里找到你的操作系统,并确认你所安装的.NET版本(确认已安装的.NET版本的方式可以在这里查看)。需要对服务器上的每个.NET版本都下载和安装补丁。 Windows Server 2008 R2 and Windows 7 .NET Framework版本 知识库(KB)文章 补丁 .NET Framework 3.5.1 (默认安装) KB2416471 [...]

Posted in 未分类 | Leave a comment

NuPack, ASP.NET MVC 3 Beta和WebMatrix Beta 2发布公告

[原文发表地址]:Announcing NuPack, ASP.NET MVC 3 Beta, and WebMatrix Beta 2 [原文发表时间]:2010/10/06 8:06 AM 我很高兴地宣布在今天发布几个项目的Beta版。 其中两个—ASP.NET MVC 3 Beta和WebMatrix Beta 2,是从今年夏天的预览版演化而来的。而第三个—NuPack—是让我非常兴奋的一个新项目。 NuPack —.NET下的开源包管理工具 NuPack是一个自由开源包管理工具,它便于你找到,安装并在你的工程里使用.NET库。它支持所有的.NET项目类型(包括但不限于ASP.NET Web窗体和ASP.NET MVC)。 NuPack可以让维护开源项目(比如Moq, NHibernate, Ninject, StructureMap, NUnit, Windsor, RhinoMocks, Elmah等)的程序员们打包他们的函数库,并在一个在线名录上注册它们,便于检索。而NuPack客户端工具—支持完整的Visual Studio集成—任何想要使用这些函数库的程序员都可以很容易地在他们的工程中找到并安装它们。 NuPack可以处理库之间的依赖关系(例如:函数库1依赖于函数库2)。它便于你之后在工程里升级(或移除)函数库。它支持更新web.config文件(如果一个包需要设置)。它还允许包在工程中添加PowerShell脚本(比如:Scaffold命令)。值得一提的是,NuPack很干净—不会在系统层面上安装任何东西。它专注于帮你管理工程中的函数库。 NuPack本身就是一个开源项目。Outercurve基金会(原来称作CodePlex基金会)今天已经宣布将NuPack项目吸纳到ASP.NET开源项目名册里。无论是否来自微软的程序员都可以为NuPack提交新功能、Bug修复代码和补丁。 我们的目标就是使NuPack在.NET工程里整合开源库的过程尽可能的简单。所有版本的Visual Studio都支持它,你今天就可以使用它的第一个开发者预览版。 一个简单的NuPack场景—启用ELMAH 作为演示NuPack的一个简单示例—假设我们现在开始一个全新的ASP.NET应用程序,并想使用流行的开源”ELMAH”库来记录和报告站点里发生的错误。现在要安装ELMAH的话,你需要手工下载、解压缩、在工程里添加一个引用、确保函数库在代码版本控制的绑定设置正确、并修改你程序的web.config文件将Elmath HttpModule包含进来。都可以做—但是有点烦。 如果装了NuPack,你只需要在VS里打开由NuPack启用新的“包管理控制台(Package Manager Console)”,并输入“Add-Package elmah”: 命令“Add-Package elmah”导致NuPacK从一个在线资料里找到Elmah库,下载它,在你当前的工程中引用它,并自动更新你程序的web.config文件添加合适的Elmah设置: 这样我们就在工程里安装并设置好Elmah,而且也启用了错误日志功能。不需要额外的手工操作。 深入了解NuPack 请参阅下面的链接来深入了解NuPack,和它支持的其他场景: · Scott Hanselman的NuPack教程 · Phil [...]

Posted in 未分类 | Leave a comment

jQuery模板,数据链接及国际化等被吸纳成官方jQuery插件

[原文发表地址]:jQuery Template, Data Link, and Globalization Accepted as Official jQuery Plugins [原文发表时间]:2010/10/04 7:46 AM jQuery社区有一群精力充沛的程序员,同时它现在也是世界上使用最广泛的JavaScript函数库。 两年前,我宣布微软将开始为jQuery提供支持,而且从此在Visual Studio的新版本中都会包含它。默认情况下,每当你在VS 2010下创建新的ASP.NET Web窗体和ASP.NET MVC工程, jQuery core类库都会自动被包含进工程里。 今年早些时候,我在MIX 2010上宣布微软将为jQuery项目贡献代码。在我的主题演讲里,jQuery的创始人-John Resig-和我在讲台上一起,谈了一些之间的合作情况并讨论了一个新的jQuery客户端模板API的早期原型。 后来我在博客上提到了ASP.NET团队和jQuery团队及社区一起完成的jQuery模板(jQuery Templates)插件,jQuery 数据链接(Data Link)插件以及jQuery国际化(Globalization)插件的一些细节。我们已经收到很多从ASP.NET客户那里来的启用这些功能的请求。我们遵循标准的jQuern开源模型,在Github.com发布插件的原型,并在jQuery论坛吸纳从社区来的一些设计意见。 官方的jQuery插件 今天,我高兴地和jQuery团队联合宣布,jQuery项目组已经接受这三个插件(jQuery模板,jQuery数据链接和jQuery国际化)作为官方的jQuery插件。 作为官方的jQuery插件,它们将由jQuery项目组维护。从今天开始,你可以从jQuery官网下载这些插件。插件的文档也已经整合进jQuery的官方文档站点。 另外,在jQuery的下一个发布里(jQuery 1.5), jQuery模板插件将会作为jQuery核心类库的一部分。也就是说,jQuery模板的功能将会包含在jQuery.js文件里。也意味着程序员可以在使用jQuery时,利用标准的模板库和语法。 深入学习 你可以观看由James Senior和Stephen Walther主持的Web Camps视频来深入学习它们。 Web Camps第五集 – 微软向jQuery提交代码 下面是关于三个插件的其他信息(还有到jQuery.com官方文档的链接) jQuery模板(Templates) jQuery模板插件允许你创建客户端模板。比方说,你可以使用jQuery模板插件来格式化Ajax请求获取到的数据库记录。 你可以从我以前的博客文章jQuery模板和数据链接深入了解jQuery模板,也可以通过jQuery官方站点的文档了解它。另外,关于jQuery模板插件,Rey Bango, Boris Moore和James Senior都写一些很好的文章: · 还没有用jQuery JavaScript模板?你落伍啦 [...]

Posted in 未分类 | Leave a comment

ASP.NET安全更新将于9月28号发布

[原文发表地址]:ASP.NET Security Update Shipping Tuesday, Sept 28th [原文发表时间]:2010/9/27 3:02 PM 更新:你现在可以在这里下载安全补丁。 一个小时前,微软发布了一个安全预告,宣布我们将为ASP.NET安全漏洞发布一个补丁,我在上个星期的博客里提到了这个漏洞。补丁经过全面的测试,计划于明天发布—9月28号—大概太平洋时间10点左右。预告的目的是提前通知管理员们,以便在补丁可用的时候做好准备。 明天我们将通过Microsoft下载中心来发布这个补丁(我会将各版本.NET的补丁链接放在博客上)。几天后,当我们完成最终的分发测试后,将会通过Windows Update和Windows Server Update服务等渠道发布补丁。 补丁可以修复ASP.NET安全漏洞,一旦打好补丁,以前我们在博客上提到的临时解决方案就不再需要了。当然在你打好补丁之前,请继续使用该方案。 你可以从微软安全响应中心的博客,或者官方的安全预告上来了解明日安全补丁的细节。在太平洋时间9月28号的下午1点,我们还会举办一次播客,来提供关于安全简报和客户问题的信息。如果你有兴趣的话,点击这里报名。 希望这能对您有所帮助。 附:[除了写博客以外,我现在也使用推特(Twitter)来及时更新状态和分享链接,您可以到这个地址“推”我一下:twitter.com/scottgu]

Posted in 未分类 | Leave a comment

ASP.NET安全漏洞的更新

[原文发表地址]:Update on ASP.NET Valnerability [原文发表时间]:2010/9/24 4:13 PM 这个星期早些时候,我公告了一个ASP.NET安全漏洞,另外还有另外一篇跟进博客提到了关于它的常见问题。 我们正在积极地为发布修复它的安全更新而努力,并且我的团队也争分夺秒地开发和测试可以通过Windows Update发布,适用于所有Windows平台的补丁。一旦它可用,我就会发表它的详细信息。 重要更新:你现在可以在这里下载官方的安全补丁。请尽快在你的服务器上安装它—这是避免攻击的唯一方案。 改进的临时解决方案和新增的URLScan步骤 在我的第一篇博客里,我提到了你可以立即用在你的站点和程序上以防范攻击的临时解决方案。今天,我们将改进它以增加一个额外的保卫措施。 这个额外的步骤可以在服务器层面,实施过程不超过5分钟。更重要的是,这个步骤不会替换掉原先方案里的其它步骤,而仅仅是在其上添加一个额外的步骤。下面就是启用它的方法: 安装和启用IIS URLScan的一个自定义规则 如果你还没有在你的IIS Web服务器上安装IIS URLScan模块,请下载并安装它: · x86版本 · x64版本 安装过程不到一分钟。 添加一个URL Scan规则 一旦安装好URLScan,请从以下地方打开UrlScan.ini并编辑它: %windir%\system32\inetsrv\urlscan\UrlScan.ini 接近UrlScan.ini文件的底部,你可以看到一个[DenyQueryStringSequences]节。在它下面添加一行“aspxerrorpath=”并保存: [DenyQueryStringSequences] aspxerrorpath= 上面的设置禁止往ASP.NET程序发送带有”aspxerrorpath=”查询属性的URL请求,并让web服务器返回一个HTTP错误。添加这个规则避免攻击者区分出服务器上发生的错误类型—也防止攻击者利用这个漏洞。 保存后,在命令行窗口(管理员权限)运行“iisreset”来启用它。要验证变动是否生效,请尝试用一个带有aspxerrorpath查询属性的URL访问你的网站/程序,并验证IIS是否回馈一个HTTP错误。 总结 如果你已经采纳了我们以前发布的解决方案,请添加这一步来阻止攻击者利用该漏洞。 我们团队正争分夺秒地通过Windows Update发布一个修复该漏洞的补丁。在补丁发布前,你可以使用上面的方案来防范攻击者利用该漏洞攻击你的程序。 重要更新:你现在可以在这里下载官方的安全补丁。请尽快在你的服务器上安装它—这是避免攻击的唯一方案。 一旦补丁已经发布,你就不再需要这个方案了。关于这个漏洞和方法的更多信息请参阅: · 微软第2416728号安全公告 · 深入理解ASP.NET安全漏洞 · 我最初的文章 · 我的常见问题解答 · SharePoint团队博客上的文章 · 微软安全响应中心博客文章 · 微软安全响应中心博客的更新文章 请在www.asp.net网站的论坛上提关于这个漏洞的问题。 希望这能对您有所帮助。 [...]

Posted in 未分类 | 1 Comment

ASP.NET安全漏洞常见问题解答

[原文发表地址]:Frequently Asked Questions about the ASP.NET Security Vulnerability [原文发表时间]:2010/9/20 8:41 PM 两天前,我发表了一篇关于ASP.NET里安全漏洞的重要文章。在里面我介绍了我们推荐客户避免黑客利用这个漏洞攻击网站的临时解决方案。 下面关于这个漏洞一些常见问题的解答。 重要更新:你现在可以在这里下载官方的安全补丁。请尽快在你的服务器上安装它—这是避免攻击的唯一方案。 微软将会发布这个漏洞的补丁程序吗? 是的,我们正忙于ASP.NET的补丁,一旦这个补丁经过全面的测试并可以大规模发布,将会通过Windows Update发放出来。 在补丁可用之前,我们也已经发表了详细的临时解决方案(就像这篇文章),它可以帮你立即防止利用这个漏洞的攻击。请注意解决方案是临时的—打好补丁程序后就不再需要了。方案的目的是在补丁发布之前,提供你可以立即采纳的行动步骤。 它是ASP.NET的问题还是一些加密算法的问题? 这是ASP.NET在一些情况下使用加密算法的漏洞,漏洞让出错反馈消息泄露了额外的信息。现行的ASP.NET使用加密填充(encryption padding)的方式,在出错反馈消息里提供了“邪恶轴心”可以利用的信息。我们将在这次安全更新修复它。 ASP.NET Web窗体程序和ASP.NET MVC程序都会被影响到吗? 是的—这个漏洞存在于所有类型的ASP.NET程序(包括ASP.NET Web窗体和MVC)。 SharePoint也会受影响? 是的 —这个漏洞存在于SharePoint 2010里。SharePoint团队最近发表了一篇博客文章,提到了在补丁发布前你可以采纳的临时解决方案。 攻击者会在网络上或我的日志里留下什么痕迹? 攻击会导致Web服务器生成成千上万个发到不良客户端的HTTP 500和404错误响应消息。 你可以使用你防火墙里有状态的过滤器,或者告诉你网络里监测系统监测这种模式并阻挡这些客户端。IIS 7支持的IP动态限制模块(Dynamic IP Restrictions module)也可以阻挡这种类型的攻击。 在应用程序的日志里,攻击者留下的上千上万的痕迹类似下面的消息: Event code: 3005 Event message: An unhandled exception has occurred. Event time: 11/11/1111 11:11:11 AM Application [...]

Posted in 未分类 | Leave a comment

重要:ASP.NET安全漏洞

[原文发表地址]:Important: ASP.NET Security Vulnerability [原文发表时间]:2010/9/18 4:23 AM 几个小时前,我们发布了一个关于ASP.NET安全漏洞的Microsoft 安全警告,该漏洞存在于目前所有的ASP.NET版本。 该漏洞是在上周五的一个安全会议上发现的。我们建议所有的客户立即采取补救措施(见下文)来预防攻击者利用此漏洞攻击您的ASP.NET站点。 9月20日更新: 我发布了另一篇博客,其中包含关于此问题的一些FAQ,您可以从这里阅读。 9月24日更新: 我发布了另一篇博客,关于在补救措施中启用URLScan,您可以从这里阅读。 通过该安全漏洞能够做什么? 潜在的攻击者可以通过该漏洞来下载ASP.NET 应用程序中的文件,比如Web.config (它经常包含一些敏感数据)。 通过进一步利用该漏洞,攻击者可以解密发送到客户端的加密数据(如保存在页面中的ViewState)。 如何利用该漏洞 要理解该漏洞的原理,您需要先了解密钥神谕,即向一个加密系统发出问题,而它会给暗示。目前的这个漏洞就扮演了这样一个跳板,可以让攻击者不断向服务器发送加密过的数据,通过检测返回的错误码了解它是否能被解密,经过许多次尝试后,攻击者可以得到足够多的经验来解密剩余的加密内容。 避免该漏洞的临时方案 一个来避免该漏洞的替代办法就是启用ASP.NET的 <customErrors>,并且对它进行显式配置,使得不管服务器发生什么样的错误都总是返回相同的错误页。通过将不同的错误映射到同一个错误页,可以避免让攻击者辨别在服务器上产生的不同错误类型。 注意: 仅仅将customErrors设置为RemoteOnly是不够的。您必须确认所有的错误都返回相同的错误页,这需要您显示地设置customErrors节点的defaultRedirect属性,并确认它没有只针对特定的状态码。 在ASP.NET V1.0 到 V3.5版本上启用临时方案 如果您正在使用ASP.NET 1.0, ASP.NET 1.1, ASP.NET 2.0 或者 ASP.NET 3.5,那么您可以通过下面的步骤来设置 <customErrors> 将所有的错误映射到相同的错误页。 1) 编辑ASP.NET 应用程序根目录下的Web.config文件,如果文件不存在,则在应用程序的根目录下创建一个。. 2) 创建或修改 <customErrors> 节点,并做如下设置: <configuration> <system.web> <customErrors mode="On" defaultRedirect="~/error.html" /> </system.web> [...]

Posted in 未分类 | Leave a comment

Windows Phone 7开发工具包已然发布

Windows Phone 7开发工具包已然发布 [原文发表地址]:Windows Phone 7 Developer Tools Released [原文发表时间]:2010/9/16 9:24 AM 我很高兴的宣布:今天我们发布了Windows Phone 7 开发工具包的最终版本。 你可以在这里下载它们。 里面都有什么? Windows Phone 7 开发工具包里包含了编写很棒的Windows Phone 7应用程序和游戏所需的一切。里面的所有工具都是绝对免费的。 下载的安装包将安装如下的工具: Visual Studio 2010 Express for Windows Phone – 针对手机开发的VS 2010的免费版本。 Express Blend 4 for Windows Phone – Blend for Windows Phone 7 Development 的免费版本。 Silverlight for Windows Phone 7 – [...]

Posted in 未分类 | Leave a comment

使用Microsoft Web Deploy技术自动部署

使用Microsoft Web Deploy技术自动部署 [原文发表地址]:Automating Deployment with Microsoft Web Deploy [原文发表时间]:2010/9/13 1:40 AM 这是我写的关于VS2010和.Net4的博客系列的第28篇。 这篇文章继续以前博客,介绍关于我们在Web部署领域所作的改进。我在该系列的第一篇文章里,概述了VS 2010 Web部署技术的新功能。 今天的文章里,我会介绍Microsoft Web Deploy—一个采用全面的发布和部署机制的免费服务器技术。Web Deploy不仅仅让你发布文件—还可以部署数据库结构/数据,运行变更的数据库脚本,设置安全访问控制列表等等。所有这些部署步骤都可以用Visual Studio自动完成。 本篇文章将提供一个循序渐进的教程,教你如何在一台Web服务期上安装和启用Web Deploy。接着我们演示如何使用Visual Studio通过Web Deploy直接(将文件)发布到服务器上,以及如何使用Visual Studio创建自动部署你的应用程序的安装包。 Web Deploy—为什么你会喜欢它 部署一个Web应用程序或站点包含好几个步骤。您通常需要: 1. 拷贝文件和文件夹; 2. 提供数据库结构,或许还要生成一些数据库数据; 3. 在文件和文件夹上设置相应的读写和安全访问控制列表; 4. 安装和配置SSL认证; 5. 部署其它杂七杂八的依赖项(事件日志,GAC库,COM对象等等)。 手工执行上面的步骤又累又慢又危险(因为手工部署总是容易出错)。使用自动化流程,可以让你在一台服务器上快速维护和部署应用程序,减少出错的几率,并极大加快你在应用程序上的改动放到作业服务器上的周期。 Microsoft Web Deploy Web Deploy是由我的团队创建,用来改进Web部署的免费技术。它是运行在一台服务器上的部署服务,可以让你在本地或远程将程序部署到它上面。Web Deploy内置了在IIS里创建虚拟目录和应用程序、拷贝文件和文件夹、生成数据库(SQL Server和MySQL)、设置文件系统ACL的支持等等。(它甚至还内置了类似于设置注册表,注册COM组件等功能)。除了这些内置的部署功能,它还支持基于.NET的提供程序API,允许你创建和嵌入你自己的部署步骤—这样你可以按自己的方式自定义它。 Web Deploy的绑定协议是HTTPS—也就是说Web Deploy可以穿过防火墙(使部署程序到远程宿主服务器上简便、安全)。Web Deploy还同时支持管理员账号和非管理员账号的部署方案。非管理方案下,允许管理员在服务器上配置好Web Deploy,然后委托一部分部署工作给在作业服务器上没有管理员权限的程序员。这实现了一个非常安全并有弹性的部署方式。在本系列的下一篇文章里,我会讲到启用委托部署场景的配置步骤。 在Windows Server 2008上安装Web [...]

Posted in 未分类 | Leave a comment

Microsoft Web Farm Framework简介

Microsoft Web Farm Framework简介 [原文发表地址]:Introducing the Microsoft Web Farm Framework [原文发表时间]:2010/9/8 12:12 AM   上个月我们发布了Microsoft Web Farm Framework的Beta版。我们发布的Microsoft Web Farm Framework是一个免费产品,易于你管理和给养一个Web服务器农场。它允许你在服务器农场里自动安装和配置平台组件,也允许你在其间自动同步和部署ASP.NET应用程序。它还支持负载均衡—并且允许你在服务器间自动升级,这样不会(因维护)停掉或让用户无法访问站点/程序(它可以自动从负载均衡的服务器轮作里拿出一台升级,然后将其放回)。 Microsoft Web Farm Framework下载只要1 MB,并可以安装在IIS 7及以上版本。它是免费的,你可以从这里下载本Beta版的第一个预览包:x86 / x64. Microsoft Web Farm Framework的用处 运营一个Web农场要求你给养和管理多台服务器,运营一个Web农场需要(还有其它的事情): 1. 在服务器上安装IIS, ASP.NET和所有的核心平台组件。 2. 安装和配置自定义的IIS模块(Url重写,媒体服务等等)。 3. 配置IIS应用程序池和站点。 4. 为HTTPS之类的端点设置SSL认证。 5. 在多台机器上拷贝和同步相应的站点/应用程序/内容。 6. 为分布式应用使用一个HTTP负载均衡程序来协调多台Web服务器。 管理一个Web农场的管理员和程序员通常要做很多手工工作来完成上面的事情(极易犯错并且很危险),或者是写很多脚本来自动化这些工作(费时费力)。添加新机器或者变更配置或者改变应用程序是一个费时又痛苦的过程。 现在Microsoft Web Farm Framework简化了这个过程,并且让你使用一个完全自动化的方式管理Web农场。更了得的地方是,安装和使用都很简单。 使用Microsoft Web Farm [...]

Posted in 未分类 | 1 Comment