Java RESTAPI安全性-如何保护它而不是sessionid

Java RESTAPI安全性-如何保护它而不是sessionid,java,rest,security,session,Java,Rest,Security,Session,我有一个关于我的简单RESTAPI应用程序安全性的问题。 我在每次尝试从数据库中读取/更新数据时都执行了安全性检查(这是一个简单的HttpSession会话=request.getSession(true);并检查-这是新会话还是旧会话,以及它是否等于Cookie的会话id) 但问题是——即使这是一个有效的用户和有效的会话——我得到了一个让用户忽略其他用户的URL: 我可以更改2个用户id(最后2个数字)并发送相同的请求,以使其他系统用户忽略其他用户,例如: 我怎样才能解决这个问题? 我在谷歌

我有一个关于我的简单RESTAPI应用程序安全性的问题。 我在每次尝试从数据库中读取/更新数据时都执行了安全性检查(这是一个简单的HttpSession会话=request.getSession(true);并检查-这是新会话还是旧会话,以及它是否等于Cookie的会话id)

但问题是——即使这是一个有效的用户和有效的会话——我得到了一个让用户忽略其他用户的URL:

我可以更改2个用户id(最后2个数字)并发送相同的请求,以使其他系统用户忽略其他用户,例如:

我怎样才能解决这个问题? 我在谷歌上搜索了很多东西(例如——和相关的文章,包括安全问题)。但解决这个问题最简单的方法是什么?我是个初学者,所以我很乐意找到最简单的解决方案


谢谢大家!

任何身份验证机制都允许您处理此问题,前提是用户不共享相同的凭据。即使使用
Basic AUTH
,您也可以确定谁进行了身份验证


如果登录的用户是
id=1
,则他可以执行
http://localhost:8080/ChatRest/rest/FriendService/ignoreFriend/1/2
,但他不能因为任何其他
id
而忽略他人。事实上,由于您从数据库中获取用户id,因此甚至不需要第一个参数。这将是
ignoreFriend/2
,意思是“我想忽略我作为参数提供id的人”。

以防万一,我也阅读了这篇文章和其他文章,但它们对我来说很难实现和理解。。。或者没有那么简单的方法来解决我的问题是的,这个概念很棒。非常感谢。只是澄清一下-在服务器端存储此用户id的最佳方式是什么?因为如果我在用我应该从某处得到我的身份证。或者有一个简单的全局变量就足够了?数据库将是存储持久数据的标准机制。因此,我需要存储会话id和id之间的链接,并基于会话id-通过查询获取REST方法每次调用的id?我看不出需要会话的任何原因。您是如何实现身份验证的?我现在正在验证登录名和密码。我计划生成会话id并将会话id和id放入数据库。我将能够在每个sql语句中根据会话id获取id。