当网站上线时记得设置umbDebug为false--致Umbraco开发者

     从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>

上一篇:Docker的学习(一)Windows下安装docker环境以及基础的配置


下一篇:Java-collction容器