繁体   English   中英

jnlp 中的 Java Web Start 和数据库详细信息

[英]Java Web Start and database details in jnlp

是否可以在jnlp文件中隐藏数据库详细信息? 我的应用程序使用jwsMySQL -database。 jnlp -file 中,我定义了数据库连接详细信息(用户名、密码、主机名)。

像这样:

property name="dbuser" value="username"

是否有其他方法来定义数据库详细信息? 细节必须易于更改!

查看JnlpDownloadServlet 指南:替换

JnlpDownloadServlet在您的 JNLP 文件中进行方便的替换。 当客户端请求 JNLP 文件时,servlet 读取原始文件、替换值并返回结果。


是否可以在 jnlp 文件中隐藏数据库详细信息?

不。不是给高级用户。

除非您信任所有用户,否则应用程序可能不应该直接与数据库对话。 相反,您应该将数据库隐藏在服务之后,例如 REST 服务。

永远不要相信客户。 用户可以修改您的程序以执行他们想要的操作,并且他们可以读取您存储在其系统上的任何内容或通过网络发送的任何内容。 即使您使用加密,如果在他们的计算机上解密,那么他们也可以阅读。

在某人的计算机上隐藏秘密并希望他们看不到它并不是一个好主意。 当你的程序经常读取这个秘密时,更不用说它的位置了。

您应该假设在某个地方有一个恶意用户修改了您的程序(在他们的计算机上运行)来执行他们的投标,并且他们知道您发送到他们计算机的所有信息。

您可以为每个用户创建一个数据库用户,并且仍然让他们直接连接到您的数据库,因为他们的数据库用户的访问权限非常有限。 我认为这也是一个坏主意。 数据库通常没有最好的安全性。

相反,防火墙关闭您的数据库,只让您的内部系统直接访问它。 您的用户(通过您的 Java 应用程序)可以改为访问 Chris 建议的网络服务。 这为您提供了更小的攻击面,更容易保护。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM