2009-11-04 214 views
3

非常简单的问题: 我在我的web项目中有管理网站。那么,我怎样才能让它安全?如何使管理网站安全?

我直到现在:

  • 数据库处理与用户ID和用户级
  • 在管理主网页(包括所有管理网站)的页面加载有检查,如果用户ID是一个从句用户好(得到数据库的用户),如果用户级是正确
  • 如果没有,重定向与正常的母版页
  • 如果是到Default.aspx的,去trought

它真的有多安全?


编辑:

  • 的用户ID保存在服务器上的会话。
  • 没有办法保存登录(没有cookies)。
  • 用户必须登录才能获取用户标识会话
  • 登录保存在用户名,密码,IP,loginsucceeded和用户ID
+0

用户标识如何呈现给应用程序?另外,你如何验证用户? – gahooa 2009-11-04 17:12:59

回答

1

基本的想法看起来不错。这一切都取决于你如何获得该用户ID来进行检查。如果用户ID作为查询字符串传递,那么这非常糟糕。如果它通过某种类型的预授权存储在会话中,那么它会更好。如果您使用SSL,IP检查等,它会提高您的安全级别。

最主要的是如何你得到的用户ID来验证。这就是利用会发生的地方。确保这一过程,你应该确定你的设置。

编辑:根据您的更新,这看起来不错,但它也取决于你真正需要这种安全。你登录页面有多安全?你使用SSL吗?任何忧虑会议劫持?为什么不使用用户标识存储IP,并在从会话中获取用户标识时,根据存储的IP验证请求IP?

有这么多的安全解决方案。您需要确定您需要安全地走多远才能确保特定应用程序所需的安全级别。

+0

我的管理网站应该尽可能安全,因为它与客户的真钱有关。 我现在不使用SSL,但有计划在将来实施它。 知识产权的想法很好,谢谢。 – Kovu 2009-11-04 17:33:53

0

我们使用集成Windows身份验证数据库表USER_LOG。

  1. 在IIS管理器中,单击“目录安全性”选项卡
  2. 取消选中“匿名访问”
  3. 检查“集成Windows身份验证”

这可让您管理谁有权您的管理员通过修改域帐户而不是使用自己的解决方案。您仍然可以通过Environment类获取登录用户的凭证,该类可用于将每个想要存储在数据库中的用户的任何Web特定属性关联起来。这也有自动处理超时的优点,如果浏览器已关闭,则重新登录要求等。

虽然听起来好像您将单个用户帐户添加到SQL服务器,而不是通过处理所有内容ASP.NET服务帐户登录。我会避免将个人用户帐户添加到您的数据库中。在ASP.NET中,除非跳过一些无用的箍,否则ASP.NET服务帐户是针对数据库连接进行身份验证的,而不是登录到该网站的用户。

+0

因为“用户”同时是具有大量信息和条件(电子邮件验证,阻止和删除(不是物理)用户等)的“客户”,所以我在这里让所有用户处理自己的手。 – Kovu 2009-11-04 17:17:54

+0

客户访问管理网站?或者您是否使用您为面向公众的网站创建的相同认证机制? – 2009-11-04 17:25:14

+0

没有客户访问管理网站。我只使用相同的认证。我使用了一个int值“userlevel”。 – Kovu 2009-11-04 17:32:39