我有一个特殊的要求,其中一些关键算法必须在客户端脚本中处理,并且必须得到保护。使用javascript只会暴露算法。我目前正在评估在客户端脚本上保护算法的方法。感谢任何建议和替代方法。
我正在考虑的一个选项是将一个小applet下载到本地PC,在其中完成计算并更新结果。在决定这一点之前,我想知道客户端脚本本身是否可以更安全,因为它会更容易。
提前致谢!
答案 0 :(得分:4)
您无法在客户端PC上保护任何内容。
你在客户端所做的一切都是可以破解和可扩展的。
那是客户端的PC。它会做客户要求它做的任何事情。
答案 1 :(得分:3)
脚本不安全,您还需要什么级别的安全性?如果您将任何内容下载到客户端,客户端将能够查看算法。当然,如果你下载一个原生dll,那么反编译会更难,问题是这是否足够好。
大多数人在评估安全性时遗漏的重要事情是100%安全。因为您的服务器管理员可以进入并窃取服务器上的二进制文件。如果您使用第三方托管谁知道谁有权访问该服务器。
这个想法是提高标准。你想阻止普通的脚本小子吗?对它进行模糊处理,使他们难以理解理解算法的好处,可能无法证明理解它的痛苦。
您可以做的最好的事情是将算法保留在服务器上并通过Web服务公开它。
答案 2 :(得分:2)
最终用户控制到100%的所有内容都可能被篡改,尤其是那些容易暴露的JavaScript。
你走错了路。你需要重新思考你的方法。
答案 3 :(得分:2)
您可以构建包含关键算法的Web服务,并从javascript调用它。
答案 4 :(得分:1)
底线是,如果有人想要你的逻辑......他们会得到它,除非它是服务器端的,他们永远不会以任何方式获得它。
答案 5 :(得分:1)
客户端没有任何东西可以完全“安全”。
您下载的任何内容都必须在客户端PC上运行,因此可以进行分析。如果你让他们下载applet或本机可执行文件,它仍然会包含至少可以分析到程序集级别的机器指令。
您是否无法让客户端将数据上传到您的服务器并在服务器端执行计算?
答案 6 :(得分:1)
它是客户端,然后它不安全。任何有严重安全问题的事情都应该在服务器上完成。
答案 7 :(得分:0)
NPAPI插件将在客户端执行,并使逆向工程变得更加困难......但当然一个坚定的黑客将能够通过......
答案 8 :(得分:0)
理论上(我的意思是这是一个Comp.Sci。感觉)这个是是可能的。密码技术被称为“完全同态加密”。目前,该方法还不实用。没有可用的编译器能够以等效的安全形式转换算法。