0

这个问题有点牵强(我什至不知道我这样做的方式是否正确)。

我有一个在计算机上收集一些信息的脚本。目的是让该脚本 ftp/sftp/any-transfer 等一些数据到远程服务器。该脚本也旨在分发给许多人。

是否可以在脚本中隐藏远程服务器的密码/用户(甚至可能是实现细节?)。我正在考虑以某种方式对其进行编码。有什么建议么?

此外,在 java 或 C 等编译语言中,仅分发代码的编译版本是否安全?

谢谢。

4

4 回答 4

2

只需将名称设置为“用户名”并将密码设置为“密码”,然后当您将其提供给您的朋友时,提供一个仅供他们使用的帐户/凭据,并告诉他们更改脚本并完成它。这是最好/最简单的方法。

于 2013-08-13T22:12:55.507 回答
2

答案是不。您不能将身份验证详细信息放入程序中,并使用户无法获得相同的身份验证详细信息。您可以尝试混淆它们,但无法确保它们无法被读取。

编译代码甚至不会混淆它们。

解决该问题的一种方法是实现 REST Web 界面并为程序的每个分发提供某种 API 密钥。然后设置程序以使用其密钥通过 SSL 连接到接口,并将所需的任何信息放在那里。然后,您可以跟踪哪个版本从哪里连接,并限制程序的每个分发以更新服务器上的一组受限资源。此外,您可以使用服务器启发式方法来猜测 api 密钥是否已泄漏,并在发生这种情况时阻止帐户。

另一种方法是,如果程序的所有主机/用户都是受信任的,那么您可以在服务器节点上设置用户帐户,并且每个脚本都可以使用自己的用户名和密码或 SSH 密钥进行身份验证。然后,您的服务器节点必须根据每个用户被允许更新的内容来限制访问。使用基于 SSH 密钥的身份验证可让您避免留下密码,同时仍允许通过身份验证访问您的服务器。

于 2013-08-13T22:02:24.333 回答
1

要添加到 jmh 的评论并回答您问题的另一部分,可以从 .class 字节码反编译 java 并获得几乎完全正确的 .java 文件包含的内容,这样对您没有帮助。C 更难拼凑起来,但同样,它肯定是可能的。

于 2013-08-13T22:09:10.280 回答
0

我有时会使用 zlib 压缩凭据并编译为 pyo 文件。它可以防止“在编辑器中打开并按 ctrl+f”和仅防止非程序员。有时我使用 PGP 加密。)

于 2013-08-13T22:24:11.047 回答