安全问题:对于 REST URL 和静态 HTML

发布于 2024-12-03 12:44:20 字数 578 浏览 0 评论 0原文

我有一个这样的设计:

  • 有一个核心部分通过 REST 在其上运行 Spring。

  • 还有一个部分有一个 Tomcat 服务器并且只有 HTML 文件(不是 jsp 或其他任何文件)。因此,如果我想更改 tomcat 端的页面,则无需重新启动应用程序,也将设计和代码部分分开。让我们接受我在我的网络端(tomcat 端)列出用户。然后我的 Web 端发出 GET 请求,响应以 JSON 形式出现。 PUT、DELETE 和 POST 使用相同的方法发生。

我现在有两个安全问题。

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

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

感谢您的建议。

I have a design like that:

  • There is a core part runs Spring on it with REST.

  • There is another part which has a Tomcat Server and has just HTML files(not jsp or anything else.) So if I want to change a page at tomcat side there is no need to restart application also design and code part separated. Let's accept that I am listing users at my web side(tomcat side). Then my web side makes a GET request and response comes as JSON. PUT, DELETE and POST happens with same methodology.

I have 2 security problem at this point.

First, When a user wants to see an URL at server side how I will check authorization and authentication? And how can I limit an authorized person to get my web page with a too wget?

Second, How can I hide my REST URLs. For example if a user debugs my JavaScript code he/she will see that I am making a DELETE request to an URL with some parameters so he/she will try to do the same(or can make thousands of GET request to my core server if learns the URL)

Thanks for advices.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

骄兵必败 2024-12-10 12:44:20

首先,为什么使用 Tomcat 来提供静态文件?
我会采取的方法是这样的:

  • 使用静态服务器来提供静态文件(apache、lighttpd、nginx)。
    • 此服务器将执行 authN 和 authZ(使用 LDAP 目录,例如或任何其他合适的身份验证后端)。
    • AuthN 使用 Http Basic + SSL、Http Digest、WebID 等方案完成

这是第一个问题的解决方案

  • 配置静态服务器以反向代理您的应用程序服务器并使用相同的身份验证规则。

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

Firstly, why do you use Tomcat to serve static files ?
The approach I would take is this one:

  • use a static server to serve static files (apache, lighttpd, nginx).
    • This server will do authN and authZ (using an LDAP directory e.g. or any other suitable auth backend).
    • AuthN is done using scheme like Http Basic + SSL, Http Digest, WebID, ...

This is a solution to your 1st problem

  • Configure the static server to reverse proxy your app server and use the same auth rules.

URI are not "hidden", but they are no more accessible to anyone. Since the user is already authenticated to the static page, no auth should be necessary to request "rest uri".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文