2010-11-25 57 views
0

我目前使用base64_encode一些$ _GET參數,我不想經常用戶搞砸。 我在想,base64看起來不是太強還是它?

我也不想做某種巨型編碼,它不是那麼重要的信息,但我不喜歡那個平均知識的用戶會在參數中弄亂參數。

我應該繼續使用base64嗎?目前它產生MQ==如果值是1,所以很容易從URL中解壓出來然後插入你自己的。

回答

3

base64_encode()is not a security measure!它旨在通過通常僅傳輸ASCII的介質發送二進制斑點。

使用會話或正確加密變量。

我會建議只使用一個會話,並將其存儲在缺省的/tmp具有良好措施...

ini_set('session.save_path', '/sessions'); 
+0

我不想爲安全措施隱藏值,我只是想將它轉換爲普通Web用戶不會理解的東西,並且不能像這樣編輯。 – arma 2010-11-25 12:54:47

+0

@arma我是一個可以編輯您的值的常規網絡用戶。我可以看到字符串有一個像`1AzJjKosS97Zj`這樣的模式,並且很好地猜測它是基於64編碼的。然後,我可以輕鬆解碼,更改它,然後重新編碼並作爲GET參數發送。 – alex 2010-11-25 12:55:50

+0

@arma:如果你不想讓用戶編輯字符串,那麼你需要一個安全措施 – stillstanding 2010-11-25 12:56:59

0

取決於你想用它做什麼。

如果你只是想混淆它(特別是當你用Javascript或其他方式生成這些網址時),你可以將ROT13應用到URL並交換一些額外的字符來解碼它有點困難。

但是,如果您的應用程序的安全性依賴於它,則可以在數據服務器端應用靜態密鑰對稱加密,並在您收到請求時對其進行解碼。我認爲有這樣的框架。

相關問題