我目前正在Kentico 9项目中工作,需要公开管理员后端以将外部站点配置到CMS中。我看到可以创建一个可以限制某些用户的新模块,并且可以开发自己的.aspx页面。既然我们都知道ASP.NET Webforms现在是一项古老的技术,并且我的团队中大多数人都对AngularJs有很好的专业知识,我认为将该技术包含在这个模块中可能会很有趣。
首先我创建了模块,并参考了 Index.html (入口点)
然后我用Angular以这种方式创建了这个概念证明所需的一大堆文件:
如您所见,是一个与CMS文件无关但与同一站点无关的新文件夹。最终结果如下:
这对我来说似乎很顺利。我试图找到任何"警告"这种方法可能存在,但我可以找到任何东西(关于这个主题的Kentico文档有点差)。
但是,我看到Kentico从 CMSAdministrator.aspx 呈现我的html页面,其涉及安全检查以及CMS提供的所有内容,因此它似乎是安全的。您可以在URL上看到它:
那么,暴露方法是否有任何问题?
答案 0 :(得分:2)
如果我的假设是正确的,您的~/Backend/index.html
也可以直接使用。因此,如果有人转到http://yoursite.com/backend/index.html
,他们就能看到您的信息页。
我认为你可以确保不会发生这种情况的唯一方法是在服务器端进行验证(这对Web表单很容易,但你也可以在MVC中使用控制器)或配置web。配置,以便后端部分仅限于某些用户/角色。 this之类的内容可能对您有所帮助:
<location path="x/a.txt">
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
</location>