2010-12-19 48 views
1

我正在開發一個HTTP服務器應用程序(在PHP中,它恰巧)。我擔心URL中出現表格ID。是否可以加密URL變量和值來保護我的應用程序?加密URL變量中的ID

+1

加密或編碼? – 2010-12-19 00:10:13

+1

是的。什麼雖然? – deceze 2010-12-19 00:12:57

+1

@deceze:我很*很想試着回答'是'。但我認爲,歡樂的時刻可能是不值得的必然(和合理的)重擊......啊,我的懦弱...... – 2010-12-19 00:14:50

回答

2

好的,所以對於敏感信息最好使用會話,然後,是表ID等安全地扔在GET VAR?

是的,敏感信息不能讓您的服務器擺在首位。使用會話。

至於「是否在表格ID安全的網址」:我不知道,是否有什麼不好的用戶可能知道一個表ID?如果是這樣,你需要解決這個問題。通常你需要通過一些的ID,不管這是「本地表ID」還是其他一些你夢寐以求的隨機ID通常並不重要。在URL中顯示記錄的標識沒有任何固有的不安全性,這本身就意味着什麼都沒有。這就是你的應用如何使用這個ID,這可能會或可能不會打開安全漏洞。
另外想想用戶是否可以輕鬆猜出他不應該知道的其他ID,以及這是否意味着對您的安全性有害。

安全性不是一次性的,你需要在你編寫的每一行代碼中思考它。

0

聽起來像你想傳遞敏感信息作爲GET參數。

不這樣做 - 如果可以,請使用$_SESSION

但是,如果您希望編碼參數(即 =>+)請使用urlencode()

$a = 'how are you?'; 

echo urlencode($a); // how+are+you%3F 
0

您可以在傳輸之前加密通過的內容,也可以通過加密通道(例如https或ssh)運行整個通信。

+0

使用SSL有一些小問題,因爲它是一個GET參數,它對用戶是可見的 - 這可能不是所期望的。也就是說,這是一個非常容易實現的解決方案,可以解決95%的使用場景 – Basic 2010-12-19 00:16:10

0

無論您選擇何種方式調用它們,都會調用您的GET變量,並指定您選擇給它們的值。所以,是的:他們當然可以加密,或者,如果你願意的話,只是模糊不清。如果你打算encrypt variables, then PHP has quite a few options available

對於上述,我建議使用類似urlencode的東西。

一般來說,我會建議使用POST而不是GET,假設你從表單元素獲取變量。另一方面,使用會話變量可能更明智。