我如何为无源分发编译我的 ColdFusion 代码,并且让它不可读?

How can I compile my ColdFusion code for sourceless distribution, and have it be unreadable?

我的任务是创建一个可部署版本的 ColdFusion 网络应用程序以安装在客户端服务器上。我正在尝试找到一种方法来为他们提供我们代码的编译版本,而我的第一个倾向是使用 CFCompile 实用程序 that I found here。但是,在 运行 CFCompile 之后,CFM 文件中的大部分代码仍然可读。唯一看起来被混淆的是实际的 ColdFusion 代码——所有 SQL 查询仍然完全可读。 (以下屏幕截图中的示例)

HTML 和 JavaScript 在编译后的代码中仍然是可读的,但这并不重要,因为无论如何都可以在网络浏览器中看到它们。

有没有其他方法可以以用户完全无法阅读的格式分发我的源代码?我猜想无论我选择什么方法,都会有一些反编译代码的方法。这不是问题,我只需要找到一种比打开文件并查看查询更困难的方法。

Hostek 在他们的网站上有一篇关于这个主题的很好的文章 - How to Encrypt or Compile ColdFusion Files

基本上,来自那篇文章:

Using cfcompile.bat
The cfcompile.bat utility will compile all .cfm and .cfc files within a given directory into Java bytecode. This has the effect of making your source code unreadable, and it also prevents ColdFusion from having to compile your ColdFusion files on first use which provides a small performance enhancement.

有关使用 cfcompile.bat 的更多详细信息,请参阅 ColdFusion's Documentation

Using cfencode.exe
The cfencode.exe utility will apply basic encryption to a specific file or directory. If used to encrypt a directory, it will apply encryption to ALL files in the directory which can break any JS, CSS, images, or other non-ColdFusion files.

他们还在底部添加了这条注释:

Note: Encrypting your site files with cfencode does not guarantee absolute security of your source code, but it does add a layer of obfuscation to help prevent unauthorized individuals from viewing the source.

文章继续给出了关于如何使用每个的基本说明。

Adobe 在 their site regarding cfencode 上有这条注释:

Note: You can also use the cfencode utility, located in the cf_root/bin directory, to obscure ColdFusion pages that you distribute. Although this technique cannot prevent persistent hackers from determining the contents of your pages, it does prevent inspection of the pages. The cfencode utility is not available on OS X.

我还要补充一点,对于任何熟悉 ColdFusion 的人来说,解码使用此实用程序编码的任何内容都是微不足道的,因为他们也提供解码器。