知识产权和精简/模糊的javascript代码

知识产权和精简/模糊的javascript代码,javascript,minify,deobfuscation,unminify,Javascript,Minify,Deobfuscation,Unminify,我们的供应商为我们提供了一个javascript库,我们在客户端使用该库进行一些数据收集,他们在使用Ajax发送数据(到收集服务器)之前对数据进行加密 他们缩小/模糊了javascript,因此我们无法从代码中轻易看出他们正在收集什么 我们问过他们是否可以提供一个非小型化/去功能化的版本,以便我们在出现问题时进行调试,但他们说没有,原因是这是他们的知识产权 我的问题是,因为我们将所有代码下载到每个用户的浏览器中,理论上我们可以手动解码。他们真的可以不向我们提供未缩小/消除模糊的代码吗 他们真的可

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

他们缩小/模糊了javascript,因此我们无法从代码中轻易看出他们正在收集什么

我们问过他们是否可以提供一个非小型化/去功能化的版本,以便我们在出现问题时进行调试,但他们说没有,原因是这是他们的知识产权

我的问题是,因为我们将所有代码下载到每个用户的浏览器中,理论上我们可以手动解码。他们真的可以不向我们提供未缩小/消除模糊的代码吗

他们真的可以不向我们提供未缩小/消除模糊的代码吗

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

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


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

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


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

这是一个很好的工具

但是,如果您未经允许使用代码,您可能会遇到法律麻烦


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

不,它们不是必须的,但是,您可以使用自动工具取消它的显示。在这一点上,任何一个优秀的开发人员都可以查看代码,并对正在发生的事情有一个大致的了解,足以进行调试。您也可以进行除臭,但这取决于代码有多复杂,拥有源代码对您有多重要,以及您愿意花费多少开发时间。

Fiddler可以跟踪库发出的请求。取决于契约。我认为这个工具只进行格式化而不进行模糊处理(用合理的变量名替换随机变量名)?如果只是格式化,我们可以使用Chrome开发者工具,它可以给你“格式化”的版本。确切地说,这是我不理解的,他们拒绝给我们代码,但我们可以通过浪费一些不必要的时间来解决。毕竟我们是在为他们的服务付费。谢谢你的最新回复。这听起来很有趣,因为一旦他们把所有的东西结合在一起,就很难/不可能分辨出哪一个是从哪里来的。@user2001850-一家声誉良好的公司不会违背他们的开源义务。但如果是这样的话,在缩小的javascript中可能会有一些线索。如果一家公司被发现这样做,他们可能会陷入大麻烦。