如何在javascript中隐藏url?

如何在javascript中隐藏url?,javascript,obfuscation,Javascript,Obfuscation,假设我有一个URL作为网页脚本的一部分,如下所示: <script> var url = "http://www.example.com"; </script> 变量url=”http://www.example.com"; 我不希望人们能够轻松阅读此URL。显然,我意识到,一旦它到达客户端,他们将能够对我的代码进行反向工程 但我正在寻找一种轻量级的方法来掩饰这一点,这样人们就不能用view:source轻松地查看/单击它。请参见,您可以使用base64: // E

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

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

变量url=”http://www.example.com";
我不希望人们能够轻松阅读此URL。显然,我意识到,一旦它到达客户端,他们将能够对我的代码进行反向工程

但我正在寻找一种轻量级的方法来掩饰这一点,这样人们就不能用view:source轻松地查看/单击它。

请参见,您可以使用base64:

// Encoding
var encoded = btoa(stringValue);

// Decoded
var decoded = atob(stringValue);
任何知道如何访问浏览器控制台的人都可以轻松解码。

首先:

这是安全的,我将推荐用于任何与安全相关的内容

但如果你必须这样做:

您可以使用,这基本上使您的代码不可读,而它仍然像我应该的那样工作

记住,不可读并不等于不可编辑

它将使您的javascript:

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

这是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
如果您想对url进行编码,还可以看看Nick Bull的答案,但是如果您阅读javascript代码,仍然可以让您的url肉眼可读

这种方法对控制台窗口也有弱点,因为任何人都可以输入变量“url”并接收url

总而言之,这个方法不会让你的url变成纯文本,但它确实有和Nick Bull的答案一样的控制台缺陷


但同样,这是不安全的。

如果您想隐藏代码中的任何内容,这是我找到的最佳选择。您还可以添加其他安全层,使反向工程变得不可行,并使代码检测到调试。

可能是base64(可能带有salt)。由于javascript是客户端代码,它们将能够读取您的所有javascript。可能重复您为什么要隐藏此url?如果出于安全考虑,您应该查看服务器端代码,而不是客户端代码。解码总是很容易的,因为问题只需要javascript回答,而javascript是客户端code@user1509104完全正确!我不建议对任何安全的东西使用这种方法,因为我基本上是说FWIW模糊处理从来都不安全。如果你能提供适当的JavaScript保护,它将是安全的,JavaScript模糊处理程序很容易反转。看看jscrambler.com,不知道为什么这个答案被否决了。这是迄今为止唯一正确的答案。与Jscrambler相比,它是超轻量的,并且使得代码不容易阅读,正如OP所要求的那样。小心使用base64和其他编码,有时并非所有浏览器都支持它们。但这是简单的ASCII混淆,应该适用于任何地方。问题不是要保护代码或添加安全级别,而是要在代码中数字化url,方法是使用一种轻量级的方式,在“查看:源”中数字化url,确切地说,隐藏url,因此我的回答是,我的研究Jscrambler似乎不是一种隐藏url的“轻量级”方式
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