Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.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/9/security/4.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 安全问题:对于RESTURL和静态HTML_Java_Security_Spring_Http_Rest - Fatal编程技术网

Java 安全问题:对于RESTURL和静态HTML

Java 安全问题:对于RESTURL和静态HTML,java,security,spring,http,rest,Java,Security,Spring,Http,Rest,我有一个这样的设计: 它有一个核心部件,弹簧和其他部件一起运行 还有另一个部分,它有一个Tomcat服务器,只有HTML文件(不是jsp或任何其他文件)。所以,如果我想在Tomcat端更改页面,就不需要重新启动应用程序,也不需要将设计和代码部分分开。让我们接受我在我的web端(tomcat端)列出的用户。然后,我的web端发出GET请求,响应为JSON。PUT、DELETE和POST使用相同的方法进行 我现在有两个安全问题 首先,当用户希望在服务器端查看URL时,我将如何检查授权和身份验证?

我有一个这样的设计:

  • 它有一个核心部件,弹簧和其他部件一起运行

  • 还有另一个部分,它有一个Tomcat服务器,只有HTML文件(不是jsp或任何其他文件)。所以,如果我想在Tomcat端更改页面,就不需要重新启动应用程序,也不需要将设计和代码部分分开。让我们接受我在我的web端(tomcat端)列出的用户。然后,我的web端发出GET请求,响应为JSON。PUT、DELETE和POST使用相同的方法进行

我现在有两个安全问题

首先,当用户希望在服务器端查看URL时,我将如何检查授权和身份验证?我怎样才能限制授权人员使用太多的wget获取我的网页

第二个,如何隐藏我的REST URL。例如,如果用户调试我的JavaScript代码,他/她将看到我正在使用一些参数对URL发出删除请求,因此他/她将尝试执行相同的操作(或者如果知道URL,可以向我的核心服务器发出数千个GET请求)


谢谢你的建议。

首先,为什么要使用Tomcat来提供静态文件? 我将采取以下方法:

  • 使用静态服务器提供静态文件(apache、lighttpd、nginx)。
    • 此服务器将执行authN和authZ(使用LDAP目录或任何其他合适的auth后端)
    • AuthN是使用Http Basic+SSL、Http摘要、WebID等方案完成的
这是您第一个问题的解决方案

  • 将静态服务器配置为反向代理应用服务器,并使用相同的身份验证规则

URI不是“隐藏的”,但任何人都无法访问它们。因为用户已经通过了静态页面的身份验证,所以请求“rest uri”不需要身份验证。

我已经开始了解您建议的技术和系统。你说得对,nginx似乎更符合逻辑。实际上我不明白反向代理在这里做什么。它隐藏URI吗?(并投票支持您的建议)反向代理允许您通过将请求转发到应用程序,为静态页面和动态页面使用相同的URI空间。服务器,并在必要时重写某些URI。它还允许应用程序。将身份验证委托给反向代理的服务器:因为请求到达rev。prox,仅当authZ正常时才转发。作为奖励,您可以平衡应用程序的负载。服务员。