隐藏超链接中的实际链接

时间:2011-07-12 22:13:31

标签: php hyperlink href

我有

echo <a href=\"javascript:;\"  onClick=\"window.open('". $link ."','no','scrollbars=yes,width=550,height=400')\" >View report</a>

$ link包含敏感信息,因此我想知道当您在浏览器上“查看源代码”时是否有一种简单的方法可以防止此链接显式出现。 href的任何替代方案都可以。我只需要给用户一个选项,在他提交一些数据后点击并查看他的处理结果。我希望在提交处理后尽快避免自动弹出窗口。

更新:所以$ link是一个包含用户ID和密码的GET URL ..它现在是内部的,所以很好,但我想将来把它放在我们的在线服务器上。我是PHP的新手,所以这可能不是在不久的将来,因为我不太了解需要为互联网上的实时网站实现的安全功能。现在,似乎利用数据库将是最好的方式。如果我错了,请纠正我,拜托,并感谢所有的支持!

5 个答案:

答案 0 :(得分:5)

如果用户必须导航到该链接,则无法实际隐藏该信息。您应该重新考虑您的流程如何工作,以便链接中不会显示敏感信息。

也许您可以将信息存储在数据库表中,链接只会使用包含该信息的行的ID。

答案 1 :(得分:4)

简单地说:不。如果您将我发送到URL,我将能够使用某种工具查看它。 Wireshark,Fiddler等考虑使用不同的链接结构。

答案 2 :(得分:2)

如果用户已拥有会话,则可以选择以下选项:

如果您渲染页面并需要保护此给定的示例秘密网址

http://www.MyHost.com/?what?secret&id=23232

将URL保存在用户会话中,将哈希值与秘密网址相关联

不是将网址发送到结果HTML网页,而是插入另一个网址,例如

http://www.MyHost.com/?continueWith=<hashValue>

如果调用此URL,请检查用户的会话并检索并删除该秘密URL。然后继续评估,就像用户已经调用了秘密URL一样。

这样,原始秘密网址的参数就不会到达用户的浏览器。

要优化架构,请将生命周期附加到会话中保存的URL。如果请求稍后作为生命周期结束,则返回错误。

如果以这种方式保护所有URL,则用户将无法调用任意URL,因为所有可接受的URL都是其会话中的URL。因此,用户甚至无法更改较少秘密URL的参数。

答案 3 :(得分:1)

首先如何生成$link?如果它是敏感的,这意味着用户已经以某种方式进行了身份验证。因此,$link中的信息可以存储在safe

的会话中

答案 4 :(得分:0)

保存PHP会话中的所有信息(或者最好是PHP框架使用的会话系统),然后在链接中发送某种非db相关标识符,以便代码知道下一步要做什么。

例如,您可以链接到“http://www.yourdomain.com/sec/special_action/4”,“sec”表示安全,“special_action”是要采取的操作的名称,“4 “作为行动ID参考。

因此,假设您必须将其与社会安全号码相关联。然后,您将在后端使用salted哈希来加密SSN并将其保存到会话数据中。然后,将其附加到会话数组的末尾并获取数组计数。如果它返回5,那么您知道加密的SSN保存在索引4中(因为PHP使用基于0的索引)。因此,您将该索引作为链接的一部分发送,以使事情更加混乱。如果你愿意,你甚至可以加盐和散列索引。

用户点击链接,代码找到索引,抓取加密内容,解密,然后使用它。简单安全。

相关问题