java - 在 Java Web 应用程序中放置安全数据

标签 java security tomcat

问题是关于 tomcat 中的安全性,但首先考虑以下示例:

假设您有 apache 网络服务器。然后,在 www 文件夹下创建名为 dist 的文件夹,在 dist 文件夹下创建名为 bdf23b1c-ddd3-4d5b-8fdf-948693674011 的文件夹。在此文件夹下创建一些包含安全信息的文件:

www/dist/bdf23b1c-ddd3-4d5b-8fdf-948693674011/pic.png

这显然是个坏主意,因为任何用户都可以访问 yoursite.com/dist 并查看此文件夹中包含的所有内容。

另一方面,假设情况相同,但文件夹 dist 在 tomcat web 应用程序中创建。如果您的 web.xml 中有以下内容:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/dist/*</url-pattern>some java tool from outside
</servlet-mapping>

然后您可以使用其 URL 安全地下载 pic.png。如果您转到 yoursite.com/dist,则默认情况下 tomcat 不会向您显示此文件夹的内容。

但我的问题是:它如何安全?也许您可以使用服务器外部的一些 java 工具连接到 tomcat 并以某种方式确定您宝贵数据的完整路径?我了解 Java 中的安全性,这将是最终的解决方案,但我不想在这里使用任何基于密码的身份验证。

UPD #1:如果存在这样的漏洞(从外部连接某些 java 工具或其他),请在此处发布。假设使用我们的应用程序替换了 ROOT 应用程序的默认 tomcat 安装。也许对 server.xml 进行一些调整以禁止“恶意 Java 工具”的不需要的连接?

顺便说一句,我已经设置了防火墙,它拒绝除 http、https 和 ssh 之外的所有流量。

UPD #2:正如我在评论中提到的,我想为保管箱功能创建最便宜的替代方案。我不想使用密码,因为这会给我们的客户带来不便(我们希望为客户提供我们游戏的预发布访问权限)

最佳答案

您正在做的是“security through obscurity”。

但实际上它会“起作用”。只有知道该 URL 的人才能下载该文件,只要您确保目录列表始终被拒绝,并且该文件的链接不存在可以被像 Google 这样的网络爬虫获取的地方。并且没有人会扫描您与女友分享链接的媒体。

这绝对不是完全安全的,根据您要共享的数据类型,我会采用不同的解决方案......

关于java - 在 Java Web 应用程序中放置安全数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30863186/

相关文章:

java - 与 Session 的 getAttribute 和 setAttribute 方法混淆

java - 本地开发设置

java - 如何从 Sharepoint 服务器获取网站集对象

java - 如何使用 Java 的 DatabaseMetaData 从 MySQL 获取表列表?

java - 如何通过 Java 使用 Google Realtime API?

java - 来自多个交易参与者 jpos 的响应

c# - 这个加密代码安全吗?

c# - 防止SQL注入(inject)的好方法有哪些?

java - 使用 protected 文件授予 word 权限

java - 使用 Spring Boot 2.0 上传文件期间在套接字上读取意外的 EOF