0

我正在创建一个 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;
}

这是存储会话的好方法吗?它可以被黑客入侵或使用 cookie 进行类似的操作吗?

还是你们更喜欢我?

谢谢!

4

1 回答 1

0

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

当此属性为 true 时,cookie 可能仅与 https:// 请求一起发送。

但是,仍有很多工作要做,以下几点可能会帮助您了解更广泛的情况:

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

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

一些有用的资源:

于 2013-07-20T04:00:41.050 回答