【问题标题】:How to hide Ruby generated JavaScript code in a separate file?如何将 Ruby 生成的 JavaScript 代码隐藏在单独的文件中?
【发布时间】:2012-05-17 12:21:06
【问题描述】:

我们的网站上目前有一个由 JavaScript 创建的工具。 JavaScript 由 Ruby 通过 .js.erb 和 .html.erb 文件生成。问题是它是专有代码,我们希望至少能够将它移动到一个单独的文件中,这样在使用“查看源代码”时就不能直接查看它,并且可能像普通的 .js 文件一样将它包含在我们的包中。

有没有办法拦截渲染并将其重定向到其他地方或其他地方?

我最接近的是这个 - Rails Javascript compression/minification on respond_to javascript response?

我们确实让它在服务器端工作,但对我们的客户来说太慢了。 我们使用的是 Rails 3.0

【问题讨论】:

  • 将这个 JS 移动到它自己的文件中对于阻止人们看到它几乎没有什么作用。典型的浏览器开发工具可以很容易地查看页面上每个脚本的列表,无论是内联的还是从另一个文件加载的。任何想窃取您的客户端 JS 的人都会窃取它,没有技术方法可以阻止他们。
  • 是的。但是我们仍然可以将其缩小并连接到其他文件,使其更难阅读,无需额外的努力。
  • 确实,这肯定有一些价值:如果仅出于性能原因,缩小是值得的。

标签: javascript ruby-on-rails redirect render


【解决方案1】:

尝试 Javascript 混淆。检查 Stackoverflow 上的这个问题,了解混淆 Javascript 的各种方法。 How can I obfuscate (protect) JavaScript?

你可以试试 YUI Compressor、Google Closure Compiler 或 UglifyJS。

防止源代码被复制的最佳方法是在服务器端完成大部分专有工作。

【讨论】:

    【解决方案2】:

    所以我们没有找到任何方法来完全隐藏 Javascript。我们最终所做的是处理大量通过 ruby​​ 创建的变量和方法存根,并传递给位于单独文件中的更多静态 javscript,这些文件被缩小。不是最优雅的解决方案,但如果你能遵循存根线索,那么我为你鼓掌。

    【讨论】:

    • 通过默默无闻的安全不是安全:)
    猜你喜欢
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多