这是一个普遍的问题,而不是一个特定的问题。
我正在使用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
答案 0 :(得分:3)
首先,确保任何人都没有任何能力 - 网站管理员或不 - 通过网络用户界面从数据库中删除表格。请查看有关“应用最小特权原则”in here的部分。
其次,停止编写自己的身份验证和授权方案,已经为您完成了所有艰苦的工作,只需点击几下即可在会员提供商中完成。这将完成你要求的任何你没有提到但可能应该具有的许多东西,例如正确的盐渍和密码散列。在this post中查看“使用ASP.NET成员资格提供程序”。
最后,你不是“黑客攻击”你的网站,你只是将难度提高到极不可能的程度。如果您对安全性非常认真,我建议您阅读本系列文章The OWASP Top 10 for .NET developers。祝你好运!
答案 1 :(得分:2)
让您的网站“HACK PROOF”可能是不可能的。充其量你可以让它非常困难来破解,绝对是脚本小子证明,但不是一个坚定而有经验的黑客。
您需要决定愿意承担多少风险,因为您需要考虑很多事情。您愿意投入多少时间和精力以及最大限度地降低风险的回报。
我建议您前往OWASP网站并开始阅读。