我正在创建一个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;
}
这是存储会话的好方法吗?它可以被黑客攻击或类似的东西吗?
或者你们更喜欢我吗?
谢谢!
答案 0 :(得分:0)
一个简单的选项是通过将Cookies.Secure属性设置为true来将Cookie限制为仅限于网站的Https部分。检查MSDN。
当此属性为true时,cookie只能通过https:// requests。
发送然而,仍然有很多工作要做,低于几点可能会帮助你获得更广泛的图景:
通过窃听窃取会话令牌比使用跨站点脚本(假设存在漏洞)要困难得多。您需要访问网络(例如用户的LAN或ISP)。因此,根据基于风险的优先级划分,开发人员应首先解决XSS问题,因为它提供了更大的攻击面(攻击的可能性要高得多)。
如果被黑客入侵的会话的业务影响很大(例如存储信用卡以便以后在网上商店中使用),您可能最好将整个网站限制为HTTPS,然后如前所述使Cookie安全。
一些有用的资源: