2017-03-03 44 views
1

我想掩盖在PHP中通过URL传递的ID。 比如我想要改造这个:如何掩盖在PHP中通过URL传递的id?

<a href="userprofile.php?id="26"> 

在类似

<a href="userprofile.php?ID=762378207367"> 
+3

by [encrypting](http://stackoverflow.com/questions/tagged/encryption+php)它。 – hassan

+0

创建用于加密的随机密钥并将其存储在会话中。用它来加密和解密事物。 – Dimi

+0

我认为这个问题太广泛了,因为它真的取决于你的应用程序,你需要这个ID的安全程度,等等。你确实可以加密,或者你可以为每个用户生成一个随机ID并将它存储在数据库等。 –

回答

0

的Base64解码/编码将做的工作。 What is base 64 encoding used for?

当您想要通过网络发送一些二进制数据时,通常不会通过以原始格式通过线路传输位和字节来完成。为什么?因为有些媒体是为流式文本制作的。你永远不知道 - 有些协议可能会将你的二进制数据解释为控制字符(如调制解调器),或者你的二进制数据可能被搞砸了,因为底层协议可能认为你已经输入了一个特殊的字符组合(如FTP转换线结局)。

为了解决这个问题,人们将二进制数据编码为字符。 Base64是这些类型的编码之一。为什么64?因为通常可以依靠许多字符集中存在的相同的64个字符,并且您可以合理地确信您的数据最终将在电线的另一端完好无损。

学分:@戴夫马克尔

用法:<?php $encodedVar = base64_encode($var); ?>

0

这解决了屏蔽ID的问题,但并没有做到这一点在你问的具体方式。

你可以使用的形式的按钮(这看起来就像用正确的CSS的链接),并张贴:

<form method="POST" action="userprofile.php"> 
    <input name="id" type="hidden" value="1"><!-- holds id --> 
    <button type="submit">View profile</button> 
</form> 

只要确保userprofile.php接受POST。