存储会话

时间:2013-07-19 23:13:51

标签: c# asp.net session

我正在创建一个ASPwebsite,我以这种方式存储我的会话:

public List<User> getUser(string username, string password)
{
   SELECT * FROM User WHERE Username = @username AND Password = @password
}

List<User> userList = Database.getUser(txtUsername.Text, txtPassword.Text)

foreach(User u in userList)
{
    Session["Username"] = u.Username;
}

这是存储会话的好方法吗?它可以被黑客攻击或类似的东西吗?

或者你们更喜欢我吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

一个简单的选项是通过将Cookies.Secure属性设置为true来将Cookie限制为仅限于网站的Https部分。检查MSDN

当此属性为true时,cookie只能通过https:// requests。

发送

然而,仍然有很多工作要做,低于几点可能会帮助你获得更广泛的图景:

  • 通过窃听窃取会话令牌比使用跨站点脚本(假设存在漏洞)要困难得多。您需要访问网络(例如用户的LAN或ISP)。因此,根据基于风险的优先级划分,开发人员应首先解决XSS问题,因为它提供了更大的攻击面(攻击的可能性要高得多)。

  • 如果被黑客入侵的会话的业务影响很大(例如存储信用卡以便以后在网上商店中使用),您可能最好将整个网站限制为HTTPS,然后如前所述使Cookie安全。

一些有用的资源: