在网站中实施管理页面的最佳和最安全的方法是什么?

时间:2015-08-13 04:09:25

标签: asp.net security web admin

请在重复之前阅读整个问题。有类似但有所不同。

我有一个用户可以发布广告的网站。它是用ASP.NET编写的。所以 如果用户发布广告,则应通过审核路径。(涉及管理员)

例如:用户发布广告。然后管理员登录他的管理页面并查看广告,然后给予批准。

我在同一个解决方案文件中开发了它。目前我把这个页面放在一个文件夹中。要访问它,用户必须输入

  

www.test.com/admin/review.aspx

手动。因为该页面未从主网站链接。此管理员用户在用户帐户表中没有用户帐户。请注意,整个网站都使用 SSL 保护。

因此管理员必须输入密码才能进入此页面。此密码是硬编码的(无法从数据库获取)。

我使用正确的方法吗?黑客可以攻击这个页面吗?

我不希望搜索引擎将此页面编入索引。还有这个硬编码密码方法呢?这是一种安全的方式吗? 这是在这个域中实现此页面的好方法吗?我有这个网站的不同域名.org和.info等。我可以用这个来访问我的管理页面吗?

告诉我这样做的最佳和最安全的方法。非常感谢你。

1 个答案:

答案 0 :(得分:0)

硬编码密码永远不是一个好主意:

  • 该网站的开发人员将知道该应用程序的所有部署的管理员密码。
  • 如果攻击者发现密码,则无法轻易更改。
  • 该应用的预生产版本将使用与实时版本相同的管理员密码。

管理页面的安全性应该基于URL被隐藏的事实。 URL很难保密,因为它们存储在浏览器和代理日志中,它们通过电子邮件发送,如果遵循链接或从其他域(例如JQuery)使用资源,则会泄漏到referer标头中。

隐藏搜索引擎中的网页是一个好主意,但是通过使用meta tags而不是robots.txt这样做,因为任何人都可以查看机器人以确定您的秘密网页的位置。

使用已建立的安全方法确保您的管理功能安全:

  • 实施TLS / SSL,以便所有访问都通过HTTPS来缓解中间人攻击。
  • 在多次错误的密码猜测后实施帐户/ IP锁定。
  • 使用双因素身份验证(例如Google身份验证器)来缓解网络钓鱼攻击。
  • 将密码存储在数据库中或将您的身份验证外包给e..g Open ID。
  • 如果在您的数据库中存储密码,请对其进行哈希处理,并使用 slow 算法,例如bcrypt,scrypt或PDKDF2,您可以使用最多的迭代次数。