1

我们的供应商为我们提供了一个 javascript 库,我们在客户端使用它来进行一些数据收集,他们在使用 Ajax 发送(到他们的收集服务器)之前对数据进行加密。

他们缩小/混淆了 javascript,因此我们无法从代码中轻易分辨出他们正在收集什么。

我们已经询问他们是否可以提供未缩小/去混淆的版本,以便我们在出现问题时对其进行调试,但他们拒绝了,原因是这是他们的知识产权。

我的问题是,因为我们已将所有代码下载到每个用户的浏览器,理论上我们无论如何都可以手动解码它。他们真的可以不向我们提供未缩小/去混淆的代码吗?

4

4 回答 4

2

他们真的可以不向我们提供未缩小/去混淆的代码吗?

是的。除非您与他们达成协议,要求他们提供原始源代码,否则他们不必这样做;即没有法律义务。

假设他们编写了代码,我也不会说他们有道德义务。这包括您付钱让他们为您编写代码的情况,但您并不要求他们为您提供源代码。(例如,他们向您收取的费用可能低于开发成本,因为他们希望通过向其他客户出售相同的代码来收回成本。)

如果他们不编写代码,情况会有所不同,但他们是从开源代码中派生出来的。然后可能会要求他们提供源代码……取决于原始作品的开源许可。例如,如果您要求,GPL 许可证将要求他们提供源代码(包括其修改的源代码)。

于 2016-06-23T11:58:12.130 回答
1

所以这里我们有两个问题。第一个问题是关于法律的。如果他们是此代码的所有者,他们可以确定使用此代码的任何变体。如果他们购买了它们,则他们的权利受到协议的限制。

第二个问题是关于这样做的感觉。没有明确的答案。我认为(但这只是我的观点)在开发过程中对您隐藏代码并不是一个好主意。但是……先看重点。

于 2016-06-23T11:59:58.893 回答
0

不,他们没有义务,但是,您可以使用自动化工具将其缩小。到那时,任何优秀的开发人员都可以查看代码并大致了解正在发生的事情,无论如何都足以进行调试。您也可以进行反混淆,但这取决于代码的复杂程度、拥有源代码的重要性以及您愿意花多少开发时间。

于 2016-06-23T12:06:55.873 回答
0

这是一个很好的工具。

http://jsbeautifier.org/

但是,如果您未经许可使用您的代码,您可能会遇到法律问题。

虽然很难屏蔽浏览器中显示的代码...

于 2016-06-23T12:05:03.893 回答