如何在javascript中伪装网址?

时间:2016-08-06 17:48:47

标签: javascript obfuscation

假设我有一个URL作为网页脚本的一部分,如下所示:

<script>
var url = "http://www.example.com";
</script>

我不希望人们能够轻松阅读此网址。显然,我意识到一旦它遇到客户端,他们就能够对我的代码进行逆向工程。

但我正在寻找一种轻量级的方式来掩盖这一点,以便人们不能只使用view:source来轻松查看/点击它。

3 个答案:

答案 0 :(得分:1)

如果您想在代码中隐藏任何内容,

Jscrambler是我找到的最佳选择。您还可以添加其他安全层,以使逆向工程变得不可行,并使代码检测调试。

答案 1 :(得分:0)

请参阅MDN docs,您可以使用base64:

// Encoding
var encoded = btoa(stringValue);

// Decoded
var decoded = atob(stringValue);

任何知道如何访问浏览器控制台的人都可以轻松解码。

答案 2 :(得分:-1)

首先:

这是安全,我会推荐这个与安全相关的内容。

但如果你必须这样做:

您可以使用javascript obfuscator,这基本上会使您的代码无法读取,而它仍然可以正常工作。

请记住不可读不等于 undecodable

它会变成你的javascript:

var url = "http://www.example.com";

分为:

var _0x5386=["\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x65\x78\x61\x6D\x70\x6C\x65\x2E\x63\x6F\x6D"];var url=_0x5386[0]

这是100%相同的代码,只是不可读:

var _0x5386=["\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x65\x78\x61\x6D\x70\x6C\x65\x2E\x63\x6F\x6D"];var url=_0x5386[0]

console.log(url); // http://www.example.com

如果您想对网址进行编码,请查看Nick Bull的答案,但如果您阅读javascript代码,这仍然会让您的网址可读。

此方法也存在控制台窗口的弱点,因为任何人都可以输入变量“url”并接收网址。

总而言之,这种方法不会将您的网址保留为纯文本,但它确实具有与Nick Bull的答案相同的控制台缺陷。

但同样,这是安全。