存储会话

本文关键字:会话 存储 | 更新日期: 2023-09-27 18:24:04

我正在创建一个ASP网站,我的会话存储方式如下:

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;
}

这是存储会话的好方法吗?它能被黑客入侵吗?

还是你们更喜欢我?

谢谢!

存储会话

一个简单的选项是通过将cookies.Secure属性设置为true,将您的cookies仅限于网站的Https部分。查看MSDN。

当该属性为true时,cookie只能通过https://请求发送。

然而,仍然有很多事情要做,下面的几点可能会帮助你了解更广泛的情况:

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

  • 如果会话被黑客入侵的业务影响很大(例如,存储信用卡以备日后在网上商店使用),您最好将整个网站限制为HTTPS,然后像前面解释的那样确保cookie的安全。

一些有用的资源:

  • 数字威胁
  • 黑客手册