.NET SQL登录&进一步的行动

时间:2014-07-15 02:38:28

标签: sql .net login

我已经为.NET和所属的SQL-Server制作了一些登录脚本。

目前我想知道如何继续,当用户成功登录时。

我的意思是: 用户登录,成功,然后您可以在程序中设置ID: loggedinuser = 1'表示用户数据库中的id。

但是如果有人通过一些恶意程序改变了这个价值呢?

这会被称为会话劫持正确吗?

如何进行呢?

希望你能理解我试图解释的内容。

谢谢!

1 个答案:

答案 0 :(得分:0)

您是将该值存储在Cookie还是其他前端?

通常,您永远不会出于任何原因将数据库主键暴露给用户(这不仅对于用户ID而且对于存储在数据库中的任何类型的顺序ID都是一个很好的经验法则)。有些框架已经在幕后处理了所有这些安全注意事项,但是你已经建立了自己开发的东西,这里有两种方法可以阻止会话劫持......

1)您可以在将用户ID发送到前端之前对其进行加密。这样,用户只能看到一串无意义的字符,并且无法更改任何内容。

2)另一种(更好的)方法是使用会话令牌。这可能是一个GUID,或另一个完全随机的数字,这将是唯一发送给用户的东西。在您的后端,此令牌将映射到"会话"其中包含用户ID。数据只能在服务器上获得,用户永远不会知道会话中存储的内容。

还有很多其他方法可以解决这个问题,但上述两种方法最常见,最直接。

但是,最好的方法是使用已建立的框架(例如ASP.NET成员资格),它已经为您解决了所有这些问题。自己动手将总是会引入错误,并且很容易错过利基案例。