如何在Javascript中执行base64编码的代码

时间:2018-02-05 14:22:48

标签: javascript html base64

我在html页面(JavaScript)中有这段代码:

<script>
    var cox,d = 0;
    Console.Log(cox,d);
</script>

现在我使用base64编码手动加密[var cox,d = 0; Console.Log(cox,d);],结果如下:IHZhciBjb3gsZCA9IDA7DQogQ29uc29sZS5Mb2coY294LGQpOw==

我希望这个编码的字符串(代码)可以由同一页面中的另一个JavaScript函数执行...例如:

<script>
    var encoded = "IHZhciBjb3gsZCA9IDA7DQogQ29uc29sZS5Mb2coY294LGQpOw==";
    var decodedString = atob(encoded);
    /* Problem is here */
</script>

我想在/* Problem is here */&#39;。

中执行JavaScript代码(上面编码)

我该怎么办?

1 个答案:

答案 0 :(得分:2)

您可以使用eval函数(it is not recommended),但它可以解决您的问题。

/* var cox,d = 0; console.log(cox,d); */
var encoded = "dmFyIGNveCxkID0gMDsgY29uc29sZS5sb2coY294LGQpOw==";
var decodedString = atob(encoded);


eval(decodedString);

另一种方法是使用New Function constructor

/* var cox,d = 0; console.log(cox,d); */
var encoded = "dmFyIGNveCxkID0gMDsgY29uc29sZS5sb2coY294LGQpOw==";
var decodedString = atob(encoded);

var func = new Function(decodedString);
func();

*编码代码时,Console和Log必须是小写而不是ucfirst。

我不是安全专家,我真的建议您检查在您的应用中评估和执行此类功能的风险。

Here is an interesting answer关于evalnew Function

之间的区别