Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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
Java 带有隐藏Id的链接_Java_Mysql_Hibernate_Spring Mvc - Fatal编程技术网

Java 带有隐藏Id的链接

Java 带有隐藏Id的链接,java,mysql,hibernate,spring-mvc,Java,Mysql,Hibernate,Spring Mvc,我正在使用Java、SpringMVC、Hibernate和MySql 我有个问题。在数据库中我有用户实体。某些用户具有管理员角色。 若用户有管理员角色,可以创建项目旅行,如“去非洲”,并可以加入其他人 当具有管理员角色的用户登录到系统时,在第一个站点中他会看到由他创建的项目。他可以点击任何项目。例如“去非洲”。然后他和朋友一起上榜。 但是 指向特定项目的链接如下所示: <a href="managementProject?idProject=${id_project}">Pr

我正在使用Java、SpringMVC、Hibernate和MySql

我有个问题。在数据库中我有用户实体。某些用户具有管理员角色。 若用户有管理员角色,可以创建项目旅行,如“去非洲”,并可以加入其他人

当具有管理员角色的用户登录到系统时,在第一个站点中他会看到由他创建的项目。他可以点击任何项目。例如“去非洲”。然后他和朋友一起上榜。 但是 指向特定项目的链接如下所示:

   <a href="managementProject?idProject=${id_project}">ProjectXX</a>
如果为true,用户可以将人员添加到项目中。如果为false,modelAndView返回403页(类似于“您没有权限” 但我不知道,这真的是一个很好的解决方案。也许有人有更好的? 对不起我的英语


谢谢!

我不理解这个问题,必须进行服务器端安全检查。如果您想发布请求,只需使用HTML表单-您仍然需要执行服务器端安全检查…要使用表单和帖子,请向每个锚添加Javascript处理程序,将表单ID保存在隐藏输入中,然后提交表单。服务器ide安全性仍然是必须的。如果希望
idProject
值在url中不是纯文本,可以对其值(Base64)进行编码然后在服务器端对其进行解码。但是,这只是表面上的修复,任何人都可以解码,如果他们愿意的话。@主要问题是当我在url中更改id时,因为这样我就可以访问某个项目。不是我的。好的,另一个问题看起来像我文章中的问题。当我在项目中有列表用户时,我可以删除一些人。这不是good解决方案,因为如果我在url中写入诸如:localhost:2233/managementProjct/delete?id=5或6或7之类的内容,我可以删除其他人。我只希望对我的项目具有访问权限。@Lukas:这正是我的意思-您必须对每个请求在服务器端执行安全验证(HTTP协议不支持数据安全检查)。HTTP Post只会隐藏参数,因为这些参数没有显示在浏览器URL中,但攻击者仍然可以使用诸如curl之类的工具访问受限数据。
private boolean checkAuth(int idProject,User user){
            List<Project> projectList = new ArrayList<Project>(user.getProjectsAdministrators());

            for(Project project:projectList){
                if (project.getId_project()==idProject){
                    return true;
                }
            }
            return false;
    }