网站安全问题

时间:2011-07-20 12:34:10

标签: asp.net security

这是一个普遍的问题,而不是一个特定的问题。

我正在使用C#网站编写带有用户登录和管理控件等的asp.NET,我显然希望网站尽可能安全,因为如果有人访问了管理员端,他们可能会丢弃所有的SQL表等。 / p>

因此,我要求在如何确保我的网站安全方面提供一些指导。我在google上发现了一些帖子,但没有发现任何值得阅读的东西。如果有人可以将我重定向到一个体面的帖子。或者只是警告我没有考虑的任何措施。

到目前为止我所做的是:

当用户/管理员输入他们的登录详细信息时。它使用sql连接进行身份验证以从数据库中提取用户名和密码,如果存在,则使用Session [“_ userID”] = id,使用用户uniqueID创建会话;

这是创建会话的整个网站中唯一的位置。

在所有具有任何类型限制的页面上,在页面加载时,运行的第一段代码检查会话[“_ userID”]是否存在。如果它存在,它会照常加载页面,如果没有,它会纯粹重定向到登录页面。

if (Session["_userID"] == null)
{
    Response.Redirect("login.aspx");
}
// rest of page loads

如果不确定这是否容易破解甚至是安全的。

会话ID被销毁的唯一时间是用完或用户注销。使用:

Session.Abandon();

这几乎是唯一的安全措施。

这够了吗?

我的网站需要得到证明

感谢阅读!

Alex

2 个答案:

答案 0 :(得分:3)

首先,确保任何人都没有任何能力 - 网站管理员或不 - 通过网络用户界面从数据库中删除表格。请查看有关“应用最小特权原则”in here的部分。

其次,停止编写自己的身份验证和授权方案,已经为您完成了所有艰苦的工作,只需点击几下即可在会员提供商中完成。这将完成你要求的任何你没有提到但可能应该具有的许多东西,例如正确的盐渍和密码散列。在this post中查看“使用ASP.NET成员资格提供程序”。

最后,你不是“黑客攻击”你的网站,你只是将难度提高到极不可能的程度。如果您对安全性非常认真,我建议您阅读本系列文章The OWASP Top 10 for .NET developers。祝你好运!

答案 1 :(得分:2)

让您的网站“HACK PROOF”可能是不可能的。充其量你可以让它非常困难来破解,绝对是脚本小子证明,但不是一个坚定而有经验的黑客。

您需要决定愿意承担多少风险,因为您需要考虑很多事情。您愿意投入多少时间和精力以及最大限度地降低风险的回报。

我建议您前往OWASP网站并开始阅读。