从4月份开始接触Umbraco,发现它是一个优秀的、开源的CMS(Content Management System),也是受到微软推荐大家使用的框架。在之前也接触过Orchar,发现它太复杂了,所以就转投Umbraco的怀抱了,最大的原因是它和公 司的开发框架很相似,主要技术是XML+XSLT,当然也可以使用C#,CSHTML和VBHTML去做呈现。同时package和theme做的都很不 错。现在在看它的源代码。目前国内通过Umbraco认证的开发人员不多。主要是国内参与的人员不多,其次Umbraco在中国没有分支机构和金牌合作 商。
当我们在本地调试好Umbraco之后,我们很多开发基于将自己的网站上线,但是网了关闭Umbraco的debug模式,可能会有安全的漏洞(Security loophole)。以下是翻译老外的blog。
1.Why you should disable trace(为什么我们需要关闭调试模式)
如果您尝试在您的网站上已启用调试时,你会得到各种有用的信息输出到页面包括安装的相关信息,而这些是对于黑客来说有用和有趣的。它还很容易确定了你是使用的umbraco类型网站。同时它可能暴露了其他你尽可能想避免让他人知道的信息。
2.How to diable the debug settings via the web.config(在web.config中关闭debug调试模式)
Umbraco在web.config放置了一个很有用的flag,允许开发这很容易设置debug的模式是on/off,关闭debug模式,我们只要 在web.config中搜索到”umbracoDebugMode”,如果是“ture”,将它设置为flase.
<add key="umbracoDebugMode" value="true" />
应该是:
<add key="umbracoDebugMode" value="false" />
更有效的方式是,您应该同时将ASP.NET debug模式设置为false.
<compilation defaultLanguage="c#" debug="true" batch="false" targetFramework="4.0">
应该是:
<compilation defaultLanguage="c#" debug="false" batch="false" targetFramework="4.0">
PS:在公司的项目中,在kick off Test和production build的时候,build System会自动判断项目是否关闭了debug模式,如果没有关闭,build是不会成功。这也是微软在asp.net 4.0中,web.config下面有web.Debug.config和web.Release.config。方便开发者将开发环境和生产环境分开。
3.Disable it using UrlRewriting.config(在UrlRewriting.config中关闭调试模式)
如果您喜欢更好的方法,你可以在UrlRewriting.config中添加路由规则,然后每次让用户访问所有的url包含可疑的页面重定向到你指定的 页面。我们可以在UrlRewriting.config重写路由规则(如果你没有其他特别的路由规则,可以直接覆盖它)。
<urlrewritingnet xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
<rewrites>
<add name="nodebugaspx"
virtualUrl="(.*).aspx.*umbDebug.*"
rewriteUrlParameter="IncludeQueryStringForRewrite"
redirect="Application"
destinationUrl="~$1.aspx"
ignoreCase="true" />
<add name="nodebug"
virtualUrl="(.*).*umbDebug.*"
rewriteUrlParameter="IncludeQueryStringForRewrite"
redirect="Application"
destinationUrl="~$1"
ignoreCase="true" />
</rewrites>
</urlrewritingnet>