2012-08-02 145 views
1

我们在我们的网络应用程序上使用Windows身份验证。MVC自定义授权属性

我扩展了MVC的AuthorizeAttribute,以便它从web.config文件读取授权用户和角色。我重写AuthorizeCore()以确保当前用户是来自配置文件的用户。

我的同事和我在这里有一点争论。他认为,如果一个恶意的个人可以轻易地将自己添加到web.config中(如果他有权访问服务器),他认为应该使用硬编码的用户和角色的标准访问属性,因此有人必须重新编译以使自己能够访问...或者使用十六进制编辑器。

好奇的是,如果我在web.config中授权角色的方法被认为是不好的做法? SO社区的集体意见是什么?

回答

2

将敏感信息存储在web.config中通常被认为是一种合理的做法。该文件不是由IIS提供的,并且通常如果有恶意的人设法让您的站点受到攻击而无法读取您的web.config文件,那么您通常会遇到更大的安全问题,而不仅仅是能够处理该文件。如果能够读取web.config仍然是个问题,那么您可以随时加密它的内容。我个人没有这样做,但我的理解是,这很容易做到。

+0

我想这个问题可能会变成一场圣战,但我很高兴至少有一个答案......它同意我的观点。 :) – sheamus 2012-08-04 00:08:09