是否可以隐藏用 java 脚本(j 查询)编写的代码?我写了一个程序,我使用了两个负载()函数。每个人都可以看到我的页面地址是否有风险?
像这样的东西:
load('account/module/message/index.php');
load('account/module/ads/index.php');
load('account/module/stat/index.html');
是否可以隐藏用 java 脚本(j 查询)编写的代码?我写了一个程序,我使用了两个负载()函数。每个人都可以看到我的页面地址是否有风险?
像这样的东西:
load('account/module/message/index.php');
load('account/module/ads/index.php');
load('account/module/stat/index.html');
不。
JavaScript 是客户端,因此所有编写的代码都以某种方式直接对客户端(最终用户)可见。您可以对其进行混淆并使其更难以破译,但最终仍然可以访问。
如果担心安全性,您可以在 php 中保留“业务逻辑”并使用 JavaScript(例如 Ajax 调用)访问它,但端点仍然是可见的。
在每个使用 Javascript 的网站上,最终用户都可以看到该 javascript 代码。不仅如此,最终用户还可以对其进行调试,并随时更改变量内容甚至代码本身。
尽管如此,仍有数百万个站点使用 Javascript,其中许多站点被认为是安全的。关键是,虽然 JS 代码可能对最终用户可见,但这并不一定意味着您的系统不安全。您只需要在了解系统工作原理的情况下编写系统即可。
这里有一些提示:
如果您将秘密(例如,必须保密的密码或业务逻辑)放入您的 JS 代码中,那么这些秘密是不安全的。不要这样做;将这些详细信息保留在服务器上。
如果您的 JS 代码进行任何类型的验证,则可以绕过该验证,因此您的服务器端代码也必须进行相同的验证。
如果您的 JS 代码调用在服务器上运行代码(例如,您的load(...)
调用,那么服务器必须验证用户是否有权这样做;不要依赖 JS 代码进行检查。
你不能“隐藏”客户端代码,你最希望做的就是混淆它,这对我来说在网络环境中基本上是没有意义的——交付给客户端的代码应该是可公开的而不是危险的- 无论如何,您几乎无法混淆 URL。
对于不应该暴露的部分,不要暴露它们。做服务器端的生成和输出只需要什么,什么是“安全的”;将两者混合时可能会出现一些麻烦(例如,希望通过在服务器上执行隐藏逻辑,但仍使用 AJAX 动态传递它),因为您的逻辑是间接暴露的(也就是说,虽然看不到,可以收集结果,可能来自不同的域以使用您的内容等)
您可以尝试使用像YUI Compressor这样的混淆工具 http://yui.github.io/yuicompressor/
所以你的代码对最终用户来说是不可读的......但是隐藏它是不可能的
隐藏价值和东西
如果你想让你的值保密,这样用户就无法阅读它们,混淆不是你的选择,但当然你的源代码会被缩小,如果你想阅读它会很乱,但它仍然存在...
所以你在这里的选择是使用某种加密,当页面加载时会被解密,但这是一项艰巨的工作,你可以使用 base64、sha1 或任何你想要的字符串或值。但是,如果他们真的想的话,任何人都可以解密它。
绝对不是,因为 javascript 在客户端执行,所以如果可能的话,您可以在服务器端脚本 (jsp/php/asp) 上执行所有操作,或者在将 javascript 代码移动到单独的文件后缩小/压缩您的 javascript 代码。
将您的 Javascript 代码放在外部文件中。然后缩小你的 javscript 代码,希望对你有帮助。
要将普通 Javascript 转换为缩小的 Javascript,请参阅此http://jscompress.com/
不幸的是没有。
Javascript 在 Web 浏览器中的客户端计算机上运行,无法对查看源代码的人隐藏。
但是,这不会对您的应用程序构成安全风险,前提是您在浏览器中访问这些页面时不会看到任何内部内容。
在服务器上处理您的所有“秘密”代码,用户无权访问该代码。仅向客户端发送“非机密”内容,例如 UI。如果您无法避免向客户端发送密码,请将其混淆以使其更难以阅读。