2011-05-02 120 views
0

我已经在网站上实现了登录(没有使用asp.net默认)。当用户登录时,我将他的IP保存在数据库中。如果他在X中不做任何事情,他的IP就会被删除。每当用户尝试进入一个受限制的页面,我都会检查他的ip是否在db上。如果是的话,他可以继续。 问题是,如果登录的用户在WiFi网络或任何其他共享网络上,所有其他用户将具有相同的IP,那就不好。我怎样才能克服这个问题?饼干是最好的答案吗?安全web登录架构?

+0

我不认为你应该基于IP登录凭证。他们很容易被欺骗,更不用提你提到的局域网问题了。使用cookies或会话。 – 2011-05-03 17:19:28

+0

但是它的基础很好,对吧? – Nir 2011-05-03 21:20:49

回答

1

用户如何登录?用户名密码?我假设密码被存储为数据库中的盐味散列,为什么不将cookie传回给用户的用户名和密码?每当他们尝试访问受限制的区域时,都要根据数据库检查用户名/密码。确保在对照数据库检查cookie值之前先对cookie值进行sanatize以防止注入。或者,根据所处的语言,您可以使用会话跟踪。

+0

而只依靠饼干?或者将它与我的IP方法结合起来?我用它加上sessionid – Nir 2011-05-08 13:42:56

1

我假设您使用WebLogic Server作为您的解决方案,尽管您对ASP.net的评论让我感到惊讶。 (虽然没有ASP标签设置的问题?)

简短的回答是,你的生活比需要更难 - 如果我正确理解你的问题 - 你想要一个空闲的用户会话超时闲置出于安全原因,一段时间后 - 那么你可以通过应用程序配置与会话超时参数做到这一点:

http://download.oracle.com/docs/cd/E13222_01/wls/docs81/webapp/web_xml.html#1017275

当保安的参与只要有可能,我总是喜欢以避免滚动我自己的解决方案。只是不够聪明而不信任它。 :-)

道歉,如果我在我的理解在这里。

+0

我道歉我试图给weblogin加标签,我看到它是weblogic并且改变了它。也许我没有保存它。我没有标记asp.net,因为它的想法很重要,而不是语言相关的.. – Nir 2011-05-04 17:22:24