我一直在本地建立了很多基于MVC的网站,我终于准备好部署第一个了,但是,我变得相当紧张。
在测试过程中,我注意到了一些令我担心的事情 - 我使用默认的表单身份验证并进行了一些调整(虽然没有任何下划线安全性)。
我注意到如果我在一个应用程序中创建了一个用户并登录,然后启动了另一个应用程序......它会让我以前一个应用程序中的用户身份登录*
。用户甚至不存在于新应用程序中!
*
- 我在控制器上使用[Authorize]
,我很惊讶我可以直接进入没有任何形式的身份验证
我认为这是因为cookie是为localhost而不是应用程序/端口设置的(尽管我在开发过程中可以做的不多)。
基于此,默认身份验证的安全性如何?
1.
无论如何都要从代码中检查用户没有“伪造”的cookie? /检查用户是否已从我的应用程序登录?
2.
我只是想知道在部署之前是否有任何检查清单或任何我可以通过的内容?
Sort of - 3.
在写这篇文章时,对于问题1.
我猜我可以添加一个包含保存到cookie的随机数的列,然后每次验证时检查该数字完成...但是,我不想开始与会员提供商混在一起...但我认为这可行。这是个好主意吗?
答案 0 :(得分:0)
尝试在您的计算机上使用IIS而不是VS Dev Server。解决您的问题1。
除此之外,我认为你不需要额外的努力来使asp.net的默认会员机制变得更加安全,当然你不需要在你的项目中做一些真正的自定义事情。这些事情已经存在了一段时间,我认为它们在安全性方面已经过了很好的测试。
您只需要记住将[Authorize]属性放到正确的位置。如果不在您的控制器上,请将它们放在正确的方法中。
答案 1 :(得分:0)
对于包含真正敏感信息的应用程序,不应信任基本Web身份验证。据说这对大多数应用来说已经足够了。在之后发布XSS漏洞之前,请务必经常检查您的应用程序。
以下是Microsoft推荐的“安全自己”列表。 http://msdn.microsoft.com/en-us/library/ff649310.aspx
无论您的身份验证有多强,一个小的XSS错误和恶意用户都可以按照自己的意愿对您的网站和用户数据进行操作!
我最近读了一本好书:Worx Professional ASP.NET,它更详细地讨论了这些步骤,以保护自己以及揭露问题的例子。阅读完之后,我能够相对轻松地“破坏并窃取”我自己的网站信息,这对于确保XSS安全的重要性是一个很好的启示。