客户端数据结构的 JavaScript 加密(或混淆)

标签 javascript user-interface javascript-framework saas

有没有办法“隐藏”javascript 对象的结构和内容?

我的客户端有相当广泛的 JavaScript 对象,其中包含有关用户 UI(和其他内容)的信息。它包含有关用户将要操作的资源的大量信息。事实上,使用 Firebug 的人可以打开控制台并查看所有数据的结构。出于安全原因,我并不热衷于此。

有什么方法可以保护这些数据?

谢谢,

最佳答案

不,您无法保护该数据。浏览器可以看到和使用的任何东西也可以被检查浏览器的人看到和使用。

您真的需要考虑一下为什么这对您来说是个问题?如果您担心可能会拦截该数据的中间人窥探,那么您应该通过 https 运行连接。

如果您担心最终用户自己会看到这些数据,我想问您为什么担心这个?这是用户自己的状态。里面应该没有什么 secret 。

如果您担心用户可能会在您的服务器上操纵一些他们不应该被允许做的事情,那么您需要在您的服务器上实现保护以防止用户不被允许做的事情.客户无法实现此类保护,因为根据定义,客户在这方面是不安全的。

如果客户端上确实存在最终用户本身不应该访问的安全数据,那么您需要重新考虑您的应用程序的工作方式并将该数据仅保存在服务器上。客户端应该只拥有绝对需要在客户端上的数据。如果您生成大部分 UI 服务器端,则可以在客户端中使用非常少的实际数据实现 UI,但正在编辑的特定字段除外。

所以……总而言之。不要将最终用户不应访问的数据放入客户端。如果这是一个问题,请重新考虑您的应用程序的工作方式。如果最终用户可以访问它,则不要工作。如果没有其他人可以访问它,则通过 https 运行您的页面。

至于混淆,几乎不值得任何努力。混淆并不提供任何真正的安全,因为它总是可以被击败。充其量,它会给试图查看您的代码的人带来一定程度的烦恼。一个坚定的黑客将能够通过花费更多的时间并通过一些工具运行它来解决混淆问题。当然,缩小您的 JavaScript 代码并没有什么害处,因为这会使它更小并降低人们的可读性,但不要将其视为任何形式的真正安全。

关于客户端数据结构的 JavaScript 加密(或混淆),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9386575/

相关文章:

qt - QDockWidget——调整窗口大小时使小部件尽可能靠近

backbone.js - Kendo UI与 Backbone js

javascript - 使用太多 JavaScript 的缺点是什么?

javascript - 一次在 html select 中附加多个选项

javascript - AWS 物联网 : ForbiddenException: Forbidden

mysql - 如何在AWS上创建一个网页UI,可以显示来自AWS中的MYSQL的数据

java - 打开 jar 文件时,更改 JAVA 中的外观和感觉不起作用

javascript - 普通 JavaScript 是否比使用 jQuery 或 MooTools 等框架更好?

javascript - 使用 JavaScript 获取没有 id 的相同 html 元素

javascript - IE 丢弃 vbscript,但 activex 终端服务控制 msrdp.ocx 仅适用于 vbscript