2010-04-05 39 views
0

我正在創建一個ASP.NET MVC網站,我在徘徊你們使用哪些技術來保護這些mvc網址上的主鍵。哪種方法可以保護ASP.NET MVC上的主鍵?

其實ASP.NET MVC生成此語法的網址:

/Controller/Action/Id 

上週我試圖使用SHA-1加密對其進行加密,但這種加密生成一個像+一些特殊符號(加) /(斜線)以及其他煩人的字符,這些字符難以解密。

也許創建自定義加密應該可以解決問題。但我想從你們這裏來,你有什麼想法來保護mvc網址嗎?

回答

1

保護主鍵最好的方法是保證服務器端的安全性,如果當前用戶被允許查看它。另一個通常的選擇是使用很難猜測的Guids,但是如果沒有服務器端驗證,它仍然是Security by Obscurity。

+2

這正是我們在應用程序中所做的。讓人們輸入帳戶/顯示/ {notMyId} ...因爲您登錄到系統中,我們知道您是誰,並且您不會看到來自您不擁有的身份證的任何信息:) – Jedidja 2010-04-05 19:56:19

+0

不錯,我會繼續Guid並確保當前用戶可以看到它。謝謝邁克 – 2010-04-05 20:18:01

0

我不明白你如何通過保護主鍵來獲得任何東西,除非你相信「默默無聞的安全性」(這與「很少或沒有安全性」相同)。

而不是隱藏實際的ID你應該確保有一個適當的安全模型,以確保進行URL黑客的人不能訪問他們不允許看到的記錄。

0

要直接回答您的問題:任何加密Id的方法最好使用經驗證的加密方法,如框架中的SHA-1。您可以防止使用UrlEncode來干擾非法字符。這就是說,我會考慮使用服務器端的安全性來驗證用戶可以訪問指定查詢字符串的對象,而不是試圖掩蓋實際的PK。

相關問題