我想掩盖在PHP中通过URL传递的ID。 比如我想要改造这个:如何掩盖在PHP中通过URL传递的id?
<a href="userprofile.php?id="26">
在类似
<a href="userprofile.php?ID=762378207367">
我想掩盖在PHP中通过URL传递的ID。 比如我想要改造这个:如何掩盖在PHP中通过URL传递的id?
<a href="userprofile.php?id="26">
在类似
<a href="userprofile.php?ID=762378207367">
的Base64解码/编码将做的工作。 What is base 64 encoding used for?
当您想要通过网络发送一些二进制数据时,通常不会通过以原始格式通过线路传输位和字节来完成。为什么?因为有些媒体是为流式文本制作的。你永远不知道 - 有些协议可能会将你的二进制数据解释为控制字符(如调制解调器),或者你的二进制数据可能被搞砸了,因为底层协议可能认为你已经输入了一个特殊的字符组合(如FTP转换线结局)。
为了解决这个问题,人们将二进制数据编码为字符。 Base64是这些类型的编码之一。为什么64?因为通常可以依靠许多字符集中存在的相同的64个字符,并且您可以合理地确信您的数据最终将在电线的另一端完好无损。
学分:@戴夫马克尔
用法:<?php $encodedVar = base64_encode($var); ?>
这解决了屏蔽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。
by [encrypting](http://stackoverflow.com/questions/tagged/encryption+php)它。 – hassan
创建用于加密的随机密钥并将其存储在会话中。用它来加密和解密事物。 – Dimi
我认为这个问题太广泛了,因为它真的取决于你的应用程序,你需要这个ID的安全程度,等等。你确实可以加密,或者你可以为每个用户生成一个随机ID并将它存储在数据库等。 –