【问题标题】:Client side computation without exposing code?客户端计算而不暴露代码?
【发布时间】:2015-06-09 00:26:15
【问题描述】:

我有一个精美的网络应用程序的想法,我制作了一个原型,并且由于主要算法是解决一个 NP 完全问题,因此它的计算量相当大。如此之多,以至于如果我必须做所有的计算服务器端,那是不值得的,同时,如果我在客户端计算机上运行它,我就不会有这个问题。

我对永远隐藏算法没有任何幻想,我知道在不受我控制的计算机上运行的任何代码都可以被逆向工程。我仍然不想让它变得如此简单,以至于任何人都可以下载 .js 文件(或其他文件)并毫不费力地在自己的网站上使用它。

我在这里有哪些选择?我认为javascript已经出局了……纯文本等等。 Flash 反编译起来很简单,而 Java 存在问题,因为许多计算机用户都禁用了它,或者它需要在某处按下“接受”按钮等。

【问题讨论】:

    标签: security web


    【解决方案1】:

    无需强迫他们使用 java、flash、silver light 或 python 等。

    你会被 javascript 卡住。

    第一步是最小化它。这将使人们难以进行逆向工程。

    一个想法可能是获取计算的关键部分并在服务器上进行。使用 ajax 与客户端进行来回通信。因此,您可以在客户端上进行基本的繁重工作,然后在您想要隐藏魔法并执行 ajax 等待响应并继续计算的时候。这样一来,您可以使用客户端进行 90% 的计算,然后服务器只进行 10% 的计算,没有人可以完全对其进行逆向工程。

    但老实说,由于安全问题,IMO 和客户端计算存在风险。但我想这取决于您的特定用例,我之所以提到它,是因为您的问题是关于试图阻止信息被盗。

    【讨论】:

      猜你喜欢
      • 2017-04-16
      • 1970-01-01
      • 2019-03-23
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 2013-01-11
      相关资源
      最近更新 更多