Javascript文件名加密和引用
我想在我的应用程序中更改JavaScript名称,以获得额外的安全性,如facebook和google plus suring部署 是否有一个应用程序或库可以更改JavaScript文件名并在my view(用php编写)和JavaScript文件中引用它们Javascript文件名加密和引用,javascript,encryption,obfuscation,Javascript,Encryption,Obfuscation,我想在我的应用程序中更改JavaScript名称,以获得额外的安全性,如facebook和google plus suring部署 是否有一个应用程序或库可以更改JavaScript文件名并在my view(用php编写)和JavaScript文件中引用它们 所需效果的示例 更改此设置(在部署之前): 文件夹:js/myfunction.js 文件中: 为此(部署后): 文件夹:js/PuKJS78UyH.js 在文件中:您应该考虑优化,而不是混淆和加密。你可以做以下几件事: 将所有常见的JS
所需效果的示例 更改此设置(在部署之前): 文件夹:js/myfunction.js 文件中:
为此(部署后):
文件夹:js/PuKJS78UyH.js
在文件中:
您应该考虑优化,而不是混淆和加密。你可以做以下几件事:
base-64
编码,正常人将无法阅读,那么您很幸运,它不需要任何库<代码>\(^o^)/
只需使用btoa()
进行编码,使用atob()
进行解码即可。然后,您可以使用编码的URL创建一个
标记
在MDN中阅读更多内容:
示例:
var txt = "myfunction.js";
var encode = btoa(txt);
var decode = atob(encode);
console.log( encode ); //return "bXlmdW5jdGlvbi5qcw=="
console.log( decode ); //return "myfunction.js" (orginal)
//Do whatever you want with the encoded text, like
$("<script src='/js/"+encode+".js' type='text/javascript'></script>")
.appendTo("head"); //dynamically adding an script tag using jQuery
var txt=“myfunction.js”;
var encode=btoa(txt);
var解码=atob(编码);
console.log(编码)//返回“bXlmdW5jdGlvbi5qcw==”
控制台日志(解码)//返回“myfunction.js”(原始)
//对编码文本执行任何操作,如
$("")
.附录(下称“标题”)//使用jQuery动态添加脚本标记
演示:
结果:来自jsFiddle的结果。您可以看到“myfunction.js”被编码为“bXlmdW5jdGlvbi5qcw==”,这是普通人无法读取的
不用麻烦了。这对安全性没有影响,只会使调试更加困难。我很困惑。您所做的只是重命名文件夹和js文件名。这对安全有什么帮助?如果他们可以使用JS文件作为测试,在部署后仍然可以使用它之前尝试了解您的目录结构。在您告诉我们您试图实现的目标之前,没有人能够提供建设性和有意义的答案。模糊或损坏脚本文件名不会以任何方式提高安全性。人们只需查看HTML文件中当前已损坏的名称,然后获取该文件
PuKJS78UyHK.js
与myfunction.js
没有差异。无论使用哪一个,都在HTML文件中,可以获取和检查。“哪些普通人将无法阅读。”-普通人不会首先阅读您的源代码,也不是普通人能够从房间的另一端闻到base-64;)因为你的建议是坏习惯。您的解决方案只会在主文件中添加一些不起任何作用的内容,因此不需要包含在代码中。创建base64也是为了用ascii表示二进制数据,而不是对文件名进行编码。有很多工具可以在部署期间替换对文件的引用,而不会产生任何开销。这就是谷歌、fb和所有的大公司所做的。我已经说过,在开始的时候,它应该使用服务器端语言来处理这类事情。对此我没有异议。仅仅说base64可以用于编码文件名是误导性的。它可以包含“/”,并且在不区分大小写的文件系统中可能导致冲突:。除此之外,您的示例还将解码文件名写入DOM,这违背了它的目的-任何使用inspector查看文档的人都会看到解码文件名。是的,我也同意您的观点,但我只是说他可以使用base64
进行基本编码。