服务器端保护机制,以防止任何人查看 javascript 源 [关闭]

Posted

技术标签:

【中文标题】服务器端保护机制,以防止任何人查看 javascript 源 [关闭]【英文标题】:serverside protection mechanism to prevent anyone viewing javascript source [closed] 【发布时间】:2012-11-12 16:49:57 【问题描述】:

我知道您可以使用 javascript obfosculator 来保护 javascript 源代码,但除此之外我还需要一个更好的解决方案。

我正在研究加密要放置在某些网站上的 javascript 文件的选项。这个 javascript 文件像往常一样包含在:

<script src="http://secure.com/encryted.js"></script>

这个想法是为了以某种方式阻止用户查看 javascript 的源代码,或者至少让这样做变得更加困难......

我正在考虑一种仅通过执行类似操作来返回 javascript 的方法

<script src="http://secure.com/validate.php"></script>

这样我可以在主机secure.com上检查某些条件,如果满足这些条件,只返回javascript(加密)。

有没有人有想法或做过这样的事情?或者知道防止 javascript 源代码暴露或使其变得非常困难的好方法?

ETA 似乎是加密它的好方法

http://www.enetplanet.com/enc/

我的目标是让人们查看源代码 /html 不能“仅查看”源代码 有什么想法吗?

【问题讨论】:

这听起来可能很粗鲁(不是我的本意),但你用过谷歌吗? answers 您唯一可以期待的只是一堆在线 JS 丑陋者 的链接(如果这是您正在寻找的术语;) 根本不可能。浏览器必须能够读取 JS(以及 HTML、CSS 等等)。浏览器正在用户的计算机上运行,​​如果用户提出要求,愉快地将源代码呈现给用户。 不想让别人看到你的代码?然后专门使用服务器端代码。调用执行脚本工作的服务器端服务,然后使用 echo 或 response.write 之类的东西返回 html。 这个问题已经被问过无数次了。底线是,你不能隐藏你的客户端 javascript 这个问题表明完全缺乏研究工作 【参考方案1】:

不,TEA (http://www.enetplanet.com/enc/) 不是您可以用于此类任务的工具。它只是一个概念验证或玩具而已。 TEA(与任何其他加密系统一样)实际上不能用于加密/保护您发送到客户浏览器的 javascript 文件。

考虑一下:用户必须拥有加密程序的副本才能解密来自您服务器的 javascript 文件。在其他情况下,这本身并不是一个很大的安全漏洞。任何加密系统都依赖于密钥的保密性,而不是加密程序/算法的保密性。

不幸的是,当谈到客户端javascript时,这一个安全漏洞。加密程序 (TEA) 本身就是一个 javascript 文件。任何人都可以阅读它。以仅打印出加密密钥或仅解密“受保护” javascript文件而不进行任何检查的方式对其进行修改是微不足道的。

此外,最终用户可以完全、无限制地访问网络通信渠道。他可以使用安装在其 PC 上的网络嗅探器读取密码(密钥)。没有密钥(也没有加密系统)可以抵抗这种攻击(众所周知的“中间人”攻击)。

众所周知,没有任何真正的方法可以加密/保护 javascript 文件。你能做的最好的就是混淆它。

如果你真的需要保护某种客户端软件,你必须使用编译软件(C/C++),加密和某种硬件密钥。任何其他系统都很容易被“破解”(计算机游戏的整个历史都可以证明这一点)。

【讨论】:

以上是关于服务器端保护机制,以防止任何人查看 javascript 源 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何防止在 ADAM 中创建重复对象?

如何防止对 Android APK 文件进行逆向工程以保护代码?

Springcloud基础知识

布道微服务_13识别存活的服务节点几种解决方案

如何保护mysql数据库免受任何人的侵害

十、(Eureka篇)服务发现和自我保护机制