3

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

像这样的东西:

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

8 回答 8

8

不。

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

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

于 2013-08-08T12:18:00.797 回答
5

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

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

这里有一些提示:

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

  • 如果您的 JS 代码进行任何类型的验证,则可以绕过该验证,因此您的服务器端代码也必须进行相同的验证。

  • 如果您的 JS 代码调用在服务器上运行代码(例如,您的load(...)调用,那么服务器必须验证用户是否有权这样做;不要依赖 JS 代码进行检查。

于 2013-08-08T12:25:28.350 回答
3

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

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

于 2013-08-08T12:18:43.020 回答
2

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

所以你的代码对最终用户来说是不可读的......但是隐藏它是不可能的

隐藏价值和东西

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

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

于 2013-08-08T12:18:38.877 回答
2

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

于 2013-08-08T12:28:34.697 回答
1

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

要将普通 Javascript 转换为缩小的 Javascript,请参阅此http://jscompress.com/

于 2013-08-08T12:22:21.993 回答
1

不幸的是没有。

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

但是,这不会对您的应用程序构成安全风险,前提是您在浏览器中访问这些页面时不会看到任何内部内容。

于 2013-08-08T12:20:43.237 回答
1

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

于 2013-08-08T12:21:08.427 回答