客户端数据结构的JavaScript加密(或模糊处理)

Gor*_*oro 1 javascript user-interface saas javascript-framework

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

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

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

谢谢,

jfr*_*d00 5

不,你无法保护这些数据.浏览器可以查看和使用的任何内容也可以由检查浏览器内容的人查看和使用.

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

如果你担心最终用户自己看到这些数据,我会问你为什么关心这个?这是用户自己的状态.那里应该没有秘密.

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

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

所以...总之.不要将数据放在最终用户无法访问的客户端中.如果这是一个问题,重新考虑您的应用程序如何工作.如果最终用户可以访问它,则不起作用.如果没有其他人可以访问它,那么通过https运行您的页面.

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