Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 维护会话中的Web应用程序登录安全实现_Security_Jsp_Cookies_Web - Fatal编程技术网

Security 维护会话中的Web应用程序登录安全实现

Security 维护会话中的Web应用程序登录安全实现,security,jsp,cookies,web,Security,Jsp,Cookies,Web,我正在开发一个web应用程序,在实现登录功能方面遇到了困难。 在我的应用程序中,用户必须登录才能添加一个新项目(将行添加到数据库中,并将相应的用户id添加到新创建的行中)。此外,用户可以导航到应用程序中的不同页面,这都需要用户登录。因此,一旦登录成功,用户id就可以存储在cookie文件中,与所有页面共享。但我意识到,用户在使用其凭据登录后,可以更改cookie文件并将cookie中的用户id更改为其他人的,然后查看另一个人的机密数据。如何防止这种类型的攻击 PS:我正在为我的应用程序使用ser

我正在开发一个web应用程序,在实现登录功能方面遇到了困难。 在我的应用程序中,用户必须登录才能添加一个新项目(将行添加到数据库中,并将相应的用户id添加到新创建的行中)。此外,用户可以导航到应用程序中的不同页面,这都需要用户登录。因此,一旦登录成功,用户id就可以存储在cookie文件中,与所有页面共享。但我意识到,用户在使用其凭据登录后,可以更改cookie文件并将cookie中的用户id更改为其他人的,然后查看另一个人的机密数据。如何防止这种类型的攻击


PS:我正在为我的应用程序使用servlet和JSP。

一种方法是,在会话cookie中存储身份验证令牌,而不是将用户id存储在cookie中;该令牌需要每个用户都是唯一的,并且很难猜测。为此,您可以对用户id进行哈希和盐析,以生成身份验证令牌

为了获得额外的安全性,请确保令牌在会话结束时或用户注销后过期

这也有助于通过HTTPS实现这一点,从而对您的流量进行加密


这是一个非常好的指南。

如果我想添加有关将项目添加到db的用户的详细信息,我仍然需要用户id。能否请您解释一下,身份验证令牌如何有助于唯一标识添加字段的用户,而不仅仅是帮助标识用户是否已登录?当然,您需要的是一种在服务器端存储身份验证令牌以及用户id(例如,会话表)的方法。这样,每次有请求时,您都可以验证Cookie中是否有身份验证令牌,并使用它从服务器端存储中检索用户id。是否有特定来源的引用,其中说明了该技术的优点或缺点?嗯,试试这个,阅读第3.3.2.2节,这篇文章有点过时,但该技术的一般原理仍然有效。否则,您可能需要尝试web搜索。干杯