有什么方法可以完全隐藏 Web 应用程序代码吗?
Is there any way to completely hide Web Application code?
HTML5 代码可以很容易地通过 "Inspect Element," 查看或从 "sources."
检索
我想知道是否有任何方法可以在浏览器的客户端完全隐藏 Web 应用程序的代码。
欢迎所有语言,因此可以接受嵌入应用程序(例如 Java 小程序)。有什么聪明的方法可以解决这个问题吗?
完全隐藏前端代码是不可能的,因为用户的浏览器必须能够读取代码才能执行。此问题不仅限于网络。甚至可以使用 disassembler 检查本机二进制文件 - 同样,用户的 CPU 必须能够解释代码,因此足够熟练的攻击者也可以解释它。
也就是说,混淆代码会使代码更难阅读。 JavaScript 在投入生产之前经常被缩小 - 主要是出于性能原因。这也提供了基本级别的模糊功能,防止技能较低或动机较弱的攻击者。 Google's list of minifiy resources 可能是一个不错的起点。
瓦丁
使用面向服务器端的 Web 应用程序框架,例如 Vaadin,其中您的业务逻辑仅存在于完全用 Java 编写的服务器上,而框架会自动生成 HTML, CSS、JavaScript、DOM、AJAX 和 WebSocket 代码是在 Web 浏览器中呈现所必需的,可以让您对关键代码进行大量屏蔽。
任何用户都可以看到自动生成的 HTML 和 Java 脚本等,但这意义不大。
黑客将能够操纵该客户端代码,但作用不大。例如,黑客可以更改 HTML/JavaScript 定义弹出菜单中的值以添加另一个意外项目。但是服务器上的 Java 代码可以检查意外值并处理错误或抛出异常。
并且 Vaadin 执行完整性测试以验证客户端和服务器保持 "in sync"。破解客户端代码可能会使它们迅速失去同步。
HTML5 代码可以很容易地通过 "Inspect Element," 查看或从 "sources."
检索我想知道是否有任何方法可以在浏览器的客户端完全隐藏 Web 应用程序的代码。
欢迎所有语言,因此可以接受嵌入应用程序(例如 Java 小程序)。有什么聪明的方法可以解决这个问题吗?
完全隐藏前端代码是不可能的,因为用户的浏览器必须能够读取代码才能执行。此问题不仅限于网络。甚至可以使用 disassembler 检查本机二进制文件 - 同样,用户的 CPU 必须能够解释代码,因此足够熟练的攻击者也可以解释它。
也就是说,混淆代码会使代码更难阅读。 JavaScript 在投入生产之前经常被缩小 - 主要是出于性能原因。这也提供了基本级别的模糊功能,防止技能较低或动机较弱的攻击者。 Google's list of minifiy resources 可能是一个不错的起点。
瓦丁
使用面向服务器端的 Web 应用程序框架,例如 Vaadin,其中您的业务逻辑仅存在于完全用 Java 编写的服务器上,而框架会自动生成 HTML, CSS、JavaScript、DOM、AJAX 和 WebSocket 代码是在 Web 浏览器中呈现所必需的,可以让您对关键代码进行大量屏蔽。
任何用户都可以看到自动生成的 HTML 和 Java 脚本等,但这意义不大。
黑客将能够操纵该客户端代码,但作用不大。例如,黑客可以更改 HTML/JavaScript 定义弹出菜单中的值以添加另一个意外项目。但是服务器上的 Java 代码可以检查意外值并处理错误或抛出异常。
并且 Vaadin 执行完整性测试以验证客户端和服务器保持 "in sync"。破解客户端代码可能会使它们迅速失去同步。