5 回答
你不能。告诉高级管理人员不要这么保密。
首先,从浏览器中隐藏 url 是不可能的。浏览器必须从服务器请求网页,即使 url 以某种方式被隐藏,它也必须是 HTTP 请求中的纯文本,这将打开它到像 Fiddler 这样的中间人实用程序。
其次,这感觉像是通过默默无闻的安全感。某些人不应该访问的资源应该被明确锁定,而不仅仅是因为用户不知道 url(还)而隐藏。
但是,纯粹作为一种思考练习......我想......你可以编写一个知道真实 url 的处理程序,使用代码来检索页面的内容,然后将其写入响应。所以用户会看到处理程序的 url,但看不到处理程序从哪里提取数据。但是,您必须竭尽全力在页面上查找所有链接和资源,并将这些引用转换为也通过您的处理程序。
当然,实际上,我认为这个概念是愚蠢的。您的高级管理人员正试图解决一些问题,而对用户隐藏 url 并不是解决办法。
不确定这是否是您想要的,但这里有一个类似的问题:
它有帮助吗?还有一个,但它是一个php代码:
http://php.net/manual/en/function.mcrypt-encrypt.php
另外,您希望用什么语言来实现代码?
或者,您可以使用此站点:http ://www.iwebtool.com/html_encrypter并在框中键入您的 html,例如
<a href="https://stackoverflow.com/posts/5934696"> This is your post link</a>
然后使用“加密”按钮。它将返回您正在寻找的 javascript。
例如
"<"Script Language='Javascript'>
document.write(unescape('%3C%61%20%68%72%65%66%
3D%22%68%74%74%70%3A%2F%2F%73%74%61%63%6B%6F%76%65%72%66%6C%
6F%77%2E%63%6F%6D%2F%70%6F%73%74%73%2F%31%35%39%33%34%36%39%
36%22%3E%54%68%69%73%20%69%73%20%79%
6F%75%72%20%70%6F%73%74%3C%2F%61%3E'));
</Script>
没有 jsFiddle,因为不允许使用 javascript。
如果高层管理人员如此保密,那么可以肯定的是,您也已经有 IT 人员也锁定了浏览器,即 Internet Explorer。您的 IT 团队可能会强制隐藏公司内所有浏览器的地址栏。我不认为这可以根据每个请求来完成。这意味着地址栏将一直打开或关闭。
根据这篇文章,您的 IT 团队可能能够更新注册表以隐藏地址栏,如下所示:
Run following RegKey:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet Explorer\ToolBars]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet Explorer\ToolBars\Restrictions]
"NoNavBar"=dword:00000001
这是一个谷歌搜索,它也可能提供更多信息。
好吧,与其让它消失,不如让其他人很难看穿,甚至对那些不了解 base-64 的人来说也是不可能的。这是一个代码:
var a = document.querySelectorAll("*"), b = 0;
for ( b = 0; b < a.length; b ++ ) {
if ( a[b].hasAttribute("data-href") ) {
a[b].href = atob( a[b].getAttribute("data-href") );
};
};
现在你可以这样称呼:
<a data-href="aHR0cDovL3d3dy5teWNvbXBhbnkuY29t">Go</a>
通过使用 btoa() 我将“http://www.mycompany.com”转换为 base-64 格式的“aHR0cDovL3d3dy5teWNvbXBhbnkuY29t”,并设计了“data-href”来理解编码。在这一切背后,它的外观和行为如下:
<a href="http://www.mycompany.com">Go</a>