2

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

像这样:

property name="dbuser" value="username"

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

4

3 回答 3

2

查看JnlpDownloadServlet 指南:替换

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


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

不,不适合高级用户。

于 2012-11-15T14:02:19.680 回答
1

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

于 2012-11-15T13:58:52.497 回答
0

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

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

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

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

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

于 2012-11-16T09:46:16.827 回答