Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript文件名加密和引用_Javascript_Encryption_Obfuscation - Fatal编程技术网

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

我想在我的应用程序中更改JavaScript名称,以获得额外的安全性,如facebook和google plus suring部署

是否有一个应用程序或库可以更改JavaScript文件名并在my view(用php编写)和JavaScript文件中引用它们


所需效果的示例

更改此设置(在部署之前):

文件夹:js/myfunction.js

文件中:

为此(部署后):

文件夹:js/PuKJS78UyH.js


在文件中:

您应该考虑优化,而不是混淆和加密。你可以做以下几件事:

  • 将所有常见的JS文件合并到一个文件中(最大限度地减少了请求数量,也解决了您的问题-不会有文件名混淆)
  • 最小化JS—这样做速度更快,占用的空间更少(此外,它变得不可读)
  • 此工具看起来是一个很好的起点:

    您不应该依赖JavaScript加密。它不安全,可能会在短时间内被黑客入侵。使用PHP等服务器端语言比JavaScript安全得多

    然而,如果您想在JavaScript中执行一个简单的
    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
    进行基本编码。