是否可以隐藏用JavaScript编写的代码?

时间:2013-08-08 12:15:45

标签: php javascript jquery

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

像这样的东西:

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

8 个答案:

答案 0 :(得分:8)

没有。

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

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

答案 1 :(得分:5)

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

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

以下是一些提示:

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

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

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

答案 2 :(得分:3)

你无法“隐藏”客户端代码,你可能希望做的最多就是混淆它,对我而言,在网络环境中基本没有意义 - 交付给客户端的代码应该是可以暴露的没有危险 - 无论如何你几乎无法使用URL。

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

答案 3 :(得分:2)

您可以尝试使用混淆工具,例如 YUI Compressor http://yui.github.io/yuicompressor/

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

隐藏价值观和内容

如果你想让你的价值保密,那么用户就无法读取它们。混淆不是你真正的选择,但当然你的来源会被缩小,如果你想读它会很麻烦,但是它还在那里......

因此,您在此处的选择是使用某种加密方式,在页面加载时将对其进行解密,但这是一项艰苦的工作,您可以使用base64,sha1或任何您想要的字符串或值。但是如果他们真的想要,任何人都可以解密它。

答案 4 :(得分:2)

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

答案 5 :(得分:1)

不幸的是没有。

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

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

答案 6 :(得分:1)

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

答案 7 :(得分:1)

将您的Javascript代码放在外部文件中。 然后缩小你的javascript代码,这可以帮助你。

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