【问题标题】:is it possible to hide the code written in javascript? [duplicate]是否可以隐藏用javascript编写的代码? [复制]
【发布时间】:2013-08-10 03:39:02
【问题描述】:

是否可以隐藏用 java 脚本编写的代码(j 查询)? 我写了一个程序,我使用了两个负载()函数。 每个人都可以看到我的页面地址是否有风险?

类似这样的:

   load('account/module/message/index.php');
load('account/module/ads/index.php');
load('account/module/stat/index.html');

【问题讨论】:

  • javascript 在客户端运行 - 所以用户的浏览器必须能够看到它......这意味着用户也将能够看到它。只要你的 php 是安全的,这不应该是一个风险。
  • 黑客无法攻击其中的代码和变量?
  • 黑客不需要你的javascript来做任何事情,他们只是直接去服务器。服务器必须保护自己。

标签: php javascript jquery


【解决方案1】:

没有。

JavaScript 是客户端,因此所有编写的代码都以某种方式对客户端(最终用户)直接可见。您可以对其进行混淆,使其更难以破译,但最终仍然可以访问。

如果担心安全性,您可以在 php 中保留“业务逻辑”并使用 JavaScript(例如 Ajax 调用)访问它,但端点仍然是可见的。

【讨论】:

    【解决方案2】:

    在每个使用 Javascript 的网站上,最终用户都可以看到该 javascript 代码。不仅如此,最终用户还可以对其进行调试,并随时更改变量内容甚至代码本身。

    尽管如此,数以百万计的网站使用 Javascript,其中许多网站被认为是安全的。关键是,虽然 JS 代码可能对最终用户可见,但这并不一定意味着您的系统不安全。您只需在了解系统工作原理的情况下编写系统即可。

    这里有一些提示:

    • 如果您将机密(例如必须保密的密码或业务逻辑)放入您的 JS 代码中,那么这些机密是不安全的。不要这样做;将这些详细信息保存在服务器上。

    • 如果您的 JS 代码执行任何类型的验证,那么该验证可能会被绕过,因此您的服务器端代码也必须执行相同的验证。

    • 如果您的 JS 代码调用在服务器上运行代码(例如您的 load(...) 调用,那么服务器必须验证用户是否有权这样做;不要依赖 JS 代码来执行此操作那张支票。

    【讨论】:

      【解决方案3】:

      你不能“隐藏”客户端代码,你最希望做的就是混淆它,这对我来说在网络环境中基本上没有意义 - 交付给客户端的代码应该是可公开的没有危险 - 无论如何,您几乎无法混淆 URL。

      对于不应该暴露的部分,不要暴露它们。只做服务器端的生成和输出需要什么,什么是“安全的”;将两者混合时可能会出现一些麻烦(例如,希望通过在服务器上执行它来隐藏逻辑,但仍然使用 AJAX 动态传递它),因为您的逻辑是间接暴露的(也就是说,虽然它看不到,可以收集结果,可能来自不同的域以使用您的内容等)

      【讨论】:

        【解决方案4】:

        您可以尝试使用YUI Compressor之类的混淆工具http://yui.github.io/yuicompressor/

        所以最终用户将无法读取您的代码......但隐藏它是不可能的

        隐藏值和东西

        如果你想让你的值保密,这样用户就无法阅读它们,混淆不是你的选择,但你的源代码当然会被缩小,如果你想阅读它会很乱,但是它还在那里……

        所以你在这里的选择是使用某种加密,当页面加载时会被解密,但这是一项艰巨的工作,你可以使用 base64、sha1 或任何你想要的字符串或值。但如果他们真的愿意,任何人都可以解密它。

        【讨论】:

          【解决方案5】:

          肯定不是,因为 javascript 在客户端执行,所以如果可能的话,您可以在服务器端脚本 (jsp/php/asp) 上执行所有操作,或者在将 javascript 代码移动到单独的文件后缩小/压缩它。

          【讨论】:

            【解决方案6】:

            很遗憾没有。

            Javascript 在网络浏览器中的客户端计算机上运行,​​无法对查看源代码的人隐藏。

            但是,如果您在浏览器中访问这些页面,则不会对您的应用程序造成任何安全风险。

            【讨论】:

              【解决方案7】:

              在服务器上处理您的所有“秘密”代码,用户无权访问这些代码。仅向客户端发送“非机密”内容,例如 UI。如果您无法避免向客户端发送密码,请将其混淆以使其更难阅读。

              【讨论】:

                【解决方案8】:

                将您的 Javascript 代码放在外部文件中。 然后缩小你的 javscript 代码,希望对你有帮助。

                将普通 Javascript 转换为精简 Javascript 参考此http://jscompress.com/

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-10-18
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多