通过" Inspect Element,"可以轻松看到HTML5代码。或从"来源检索。"
我想知道是否有任何方法可以从浏览器中完全隐藏客户端的Web应用程序代码。
欢迎使用所有语言,因此可以接受嵌入应用程序(例如Java Applet)。有没有聪明的方法来解决这个问题?
答案 0 :(得分:2)
使用面向服务器端的Web应用程序框架,例如Vaadin,其中您的业务逻辑仅存在于完全用Java编写的服务器上,而框架自动生成HTML,CSS,JavaScript,DOM,AJAX和WebSocket在Web浏览器中进行演示所需的代码可以让您对关键代码进行大量屏蔽。
任何用户都可以看到自动生成的HTML和JavaScript等,但这并不意味着什么。
黑客将能够操纵该客户端代码,但它不会做太多。例如,黑客可以更改定义弹出菜单中的值的HTML / JavaScript以添加另一个非预期的项目。但是,服务器上的Java代码可以检查意外值并处理错误或抛出异常。
Vaadin执行完整性测试以验证客户端和服务器是否保持“同步”。黑客攻击客户端代码可能会迅速使它们失去同步。
答案 1 :(得分:1)
完全隐藏前端代码是不可能的,因为用户的浏览器必须能够读取代码才能执行它。此问题不仅限于网络。甚至可以使用disassembler检查本机二进制文件 - 再次,用户的CPU必须能够解释代码,因此足够熟练的攻击者也可以解释它。
也就是说,混淆代码会使其更难阅读。 JavaScript在投入生产之前通常会缩小 - 主要是出于性能原因。这也提供了基本级别的功能模糊,防止技能较低或动机较少的攻击者。 Google's list of minifiy resources可能是一个很好的起点。