如何使用JavaScript解码base64编码的文件

Mad*_*iha 11 javascript base64 file

我的公司有一个非常严格的内联网工作相关,网络有一个单一的门口允许文件进出.门口的安全性不允许使用特殊类型的文件(仅限*.txt,*.doc等),即使在这些特定类型的文件中,它也会搜索批准该文件真正属于那种类型的模式.(您不能简单地将*.zip文件伪装成*.doc文件.)

作为一个安全项目,我被告知找到绕过这个系统的方法,并插入一个C语言.exe文件说'Hello World'.

我认为将扩展名更改为.txt,而base64对其进行编码,以便系统更容易接受.问题是,如果它进入后如何解码它.在外面非常容易,PHP或任何其他体面的语言可以为我做.但是,在那里,我可以访问的唯一真正的语言是JavaScript(在IE6上,也许,MAYBE,在IE8上).

所以问题如下,我可以使用JavaScript从文件系统中读取文件,解码并将其写回来吗?或者至少为我显示结果?

注意,我不要求解码/编码消息,这个很容易,我期待解码编码文件.

谢谢.

Jef*_*eff 6

仅使用javascript(即没有像AIR等插件),浏览器不允许访问文件系统.不仅不可能将文件写入磁盘,甚至无法读取它 - 浏览器对此类事情非常严格,谢天谢地.

  • 一位朋友刚刚建议如果安装闪存可能会有效. (2认同)

los*_*gio 6

JSON可能是您正在寻找的答案.它实际上可以做到这一点.

  1. 以JSON格式对txt文件进行编码.它很可能通过贵公司的门口安检

    var myJsonData = { "text" : "SGVsbG8sIHdvcmxkIQ==" };  // <-- base64 for "Hello, world!"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用普通的html脚本语法导入txt文件

    <script src="hello.txt" type="text/javascript"> </script>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 而已!现在,您可以使用语法访问JSON对象:

    alert(myJsonData.text);
    
    Run Code Online (Sandbox Code Playgroud)
  4. 要完成您的工作,请使用这个简单的Javascript base64解码器.

  5. 你完成了.这是我用过的(非常简单的)代码:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <meta name="generator" content="PSPad editor, www.pspad.com">
      <title></title>
    
      <script src="base64utils.js" type="text/javascript"> </script>
      <script src="hello.txt" type="text/javascript"> </script>
    
      <script type="text/javascript">
        function helloFunction() {
        document.getElementById("hello").innerHTML = decode64(myJsonData.text);
        }
      </script>
    
      </head>
      <body onload="helloFunction();">
        <p id="hello"></p>
      </body>
    </html>
    
    Run Code Online (Sandbox Code Playgroud)