Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在客户端安全地执行代码_Javascript_Encryption_Distributed Computing - Fatal编程技术网

Javascript 在客户端安全地执行代码

Javascript 在客户端安全地执行代码,javascript,encryption,distributed-computing,Javascript,Encryption,Distributed Computing,在一次采访中,我被问及分布式计算的这个问题 采访者: “Sam在客户端计算机上运行特定代码以获取其输出。但是 客户端修改代码,因此代码返回不同的输出 现在Sam想知道是否有可能检测到代码是否已被删除 更改或修改了返回值。是否可能?” 我认为不可能阻止客户修改代码,因为它在他们的计算机上。还是我错了?如果没有,我们是否可以检测代码是否已被更改,或者采取一些措施使客户端难以操作代码和输出?客户端是否操作代码并不重要,唯一重要的是服务器从它那里收到的结果。毕竟,客户端可能根本没有运行您的代码,它可能只

在一次采访中,我被问及分布式计算的这个问题

采访者:

“Sam在客户端计算机上运行特定代码以获取其输出。但是 客户端修改代码,因此代码返回不同的输出

现在Sam想知道是否有可能检测到代码是否已被删除 更改或修改了返回值。是否可能?”


我认为不可能阻止客户修改代码,因为它在他们的计算机上。还是我错了?如果没有,我们是否可以检测代码是否已被更改,或者采取一些措施使客户端难以操作代码和输出?

客户端是否操作代码并不重要,唯一重要的是服务器从它那里收到的结果。毕竟,客户端可能根本没有运行您的代码,它可能只是返回一个硬编码的响应

因此问题变成了:您的服务器能否信任客户端发送的答案 一般的答案是:没有


更复杂的答案是:这取决于你想要它做什么。也许你正在做的事情是服从于,客户必须从数学上证明它做了什么。也许您可以包含一些签名过程,从数学上证明某些数据是从某些其他数据派生的,并使客户的数据可验证。服务器可能需要两个不同的客户端执行相同的工作或重叠的工作部分,这些工作可以相互验证,这将需要攻击者同时操作两个(或多个)客户端,这可能不足以使每个客户的响应都是可信的。

不可能防止修改代码。而且,根据我的经验,如果事件能够访问他们的机器,就很难检测到更改的代码,因为在他们更改代码时它不会保存为文件。我希望你看到别的,这会很酷。