2009-10-18 37 views
0

在我的網站上,人們可以提問併發布答案。問題是在example.com/question/title。要發佈答案,表單將提交到example.com/question/post_answer/7,其中7是問題ID。應用程序完整性和網址篡改

驗證在這裏運行,以確保輸入了答案。如果沒有,它會將您帶回原始網址。所以post_answer的路徑永遠不會被用戶「看到」,但他們顯然可以訪問它。

我想知道現在如果用戶將問題的ID更改爲8,他可以發佈對另一個問題的答案。

這不是真的安全問題,因爲所有用戶都會實現回答另一個問題。但是我想知道 - 在這種情況下,你如何阻止這種URL被篡改:將會話ID存儲在會話中,並在錯誤發生時顯示錯誤?

想法?

+0

如果您可以在會話中存儲問題ID,則根本不需要將其提交給用戶。那麼這種攻擊就不存在了。 – tangens 2009-10-18 16:25:02

回答

0

會話是一種方式。另一個是使用某種消息認證碼(MAC)。通常,您會使用HMAC並將代碼存儲在Cookie或部分網址中(即GET參數)。