我已经在一个网站上实现了一个登录(没有使用默认的asp.net )。当用户登录时,我将他的ip保存在数据库中。如果他在X分钟内什么也不做,他的ip地址就会被删除。每当用户试图进入受限制的页面时,我都会检查他的ip是否在数据库中。如果是这样,他可以继续。问题是,如果登录的用户在wifi网络或任何其他共享网络上,所有其他用户都将拥有相同的ip,这是不好的。我该如何克服这个问题呢?cookies是最好的答案吗?
发布于 2011-05-04 01:32:42
用户是如何登录的?用户名/密码?我假设密码是以加了盐的散列形式存储在数据库中的,那么为什么不用用户的用户名和散列密码传回一个cookie呢?每当他们试图访问受限制的区域时,都要根据您的数据库检查用户名/密码散列。确保在根据数据库检查Cookie值之前对其进行消毒,以防止注入。或者,根据它所使用的语言,您可以使用会话跟踪。
发布于 2011-05-04 14:39:59
根据标签,我假设您正在使用WebLogic服务器来解决问题,尽管您对ASP.net的评论让我感到疑惑。(尽管没有为问题设置ASP标记?)
简短的答案是,如果我正确理解您的问题,您希望空闲用户的会话在一段时间不活动后出于安全原因而超时,那么您可以通过使用session-timeout参数通过应用程序配置来实现这一点:
http://download.oracle.com/docs/cd/E13222_01/wls/docs81/webapp/web_xml.html#1017275
只要可能涉及到安全问题,我总是倾向于避免使用自己的解决方案。只是还不够聪明去相信它。:-)
如果我的理解有误,很抱歉。
https://stackoverflow.com/questions/5863010
复制相似问题