Security 如何保护我的脚本不被复制和修改?

Security 如何保护我的脚本不被复制和修改?,security,tcl,expect,Security,Tcl,Expect,我为客户创建了expect脚本,我害怕在不返回给我的情况下按照他想要的方式自定义它,所以我尝试对它进行加密,但没有找到一种方法 然后我尝试将其转换为excutable,但一些命令被激活的tcl识别,比如“send”命令,即使它在red hat上工作得很好 那么,有没有办法保护我要阅读的脚本 谢谢一种方法是将服务器中运行的基本代码存储为后端。只需给用户一个前端应用程序来执行请求。这样,基本流程就在您的控制之下,用户无法访问该代码。通常只要将代码打包成用户无法直接查看的形式就足够了。即使是最小的减速

我为客户创建了expect脚本,我害怕在不返回给我的情况下按照他想要的方式自定义它,所以我尝试对它进行加密,但没有找到一种方法 然后我尝试将其转换为excutable,但一些命令被激活的tcl识别,比如“send”命令,即使它在red hat上工作得很好

那么,有没有办法保护我要阅读的脚本


谢谢

一种方法是将服务器中运行的基本代码存储为后端。只需给用户一个前端应用程序来执行请求。这样,基本流程就在您的控制之下,用户无法访问该代码。

通常只要将代码打包成用户无法直接查看的形式就足够了。即使是最小的减速带也能阻止它们

您可以使用将脚本打包到starkit中。这些工具在技术上仍然是开放的(毕竟,
sdx
工具是免费提供的)。您可以将它创建的
.kit
文件与打包的运行时合并,将其转换为可执行文件

简而言之,基本上是这样的(掩盖了一些复杂性):

更多的讨论是,tclkit运行时是,sdx本身可以以
.kit
-打包的形式获得。请注意,用于运行sdx的运行时不需要与包中的运行时相同;您可以为运行所用平台以外的其他平台部署代码。这是打包阶段的操作,而不是编译或链接



对于更复杂的用户(即,不是普通用户),您需要将Tcl编译器从ActiveState TclDevKit中删除。它在形式上是一个代码隐藏器(实际上并没有提高任何性能),而且TDK不再得到很好的支持,但它是目前Tcl代码商业保护的主要解决方案。我是一个小型团队的成员,正在开发一个真正的编译器,它将有效地提供更强大的保护,但该编译器尚未发布(而且还没有准备好)。

我已将其标记为离题,因为它的内容可能更适合security.se。在你发布这样的问题之前,你可能想澄清一些事情,比如你想保护什么,你想保护谁,你为什么需要保护它,我试图保护源副本不被复制和修改,代码是预期的,所以我不认为它是标签外的,如果你愿意,我可以在上面的标签中添加安全性。我投票结束这个问题,因为它更适合那些TCLKIT包中的任何一个,你知道吗?随便一看就不明显了。或者“libexpect”库是“附加资产”吗?我已经试过了,tcldevkit无法捆绑expect,如果它对您有效,请提供tcldevkit版本或更新tcldevkit中expect库的方法我试图在tcl中更新expect库,但没有找到明确的方法
tclkit sdx.kit qwrap myapp.tcl
tclkit sdx.kit unwrap myapp.kit
# Copy additional assets into myapp.vfs if you need to
tclkit sdx.kit wrap myapp.exe -runtime C:\path\to\tclkit.exe