2017-03-03 77 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。