2010-11-07 23 views
1

我剛剛遇到一些代碼,似乎在將數據庫密鑰發送到客戶端(WebBrowser,Silverlight等)之前加密數據庫密鑰。在發送到瀏覽器之前從數據庫加密外鍵

爲了說明這一點,假設你有一個課外活動的學生列表,以及他們之間定義的關係。每次數據寫出到ASPX頁面時,studentID和activityID都被加密。每次寫入或修改時,都會將此值發送回服務器,解密並保存到數據庫。

這樣暴露數據的原因是什麼?這是正常的做法嗎?

如果這種選擇性加密是一種很好的做法,接近它的最佳方法是什麼?

回答

0

我認爲這是一個很好的做法,可以減少那些只想在您的網站上尋找安全漏洞的人。我的意思是,如果您的學生ID是連續編號,並且人們可以在查詢字符串中查看其頁面的ID,那麼只需增加編號以查看您是否可以訪問列表上的下一個項目或構建腳本遍歷所有的數字。

理想情況下,如果您不希望他們訪問,理想情況下您需要一些安全措施以防止人們訪問這些頁面。但即使信息全部公開,它也可能會阻止人們編寫腳本來遍歷所有信息。

我們實際上是在我們的產品中這樣做的,因爲即使我們擁有數據項的安全性,也要由網站的管理員來確保安全性得到正確應用,以便我們加密和解密URL中公開的密鑰如果管理員不知道他們在做什麼,並將應該被鎖定的事情打開,那麼使它更安全一些。

我喜歡簡單的加密/解密此擴展方法: http://www.extensionmethod.net/Details.aspx?ID=69

您需要確保URL編碼加密的值,因爲產生時,他們也並不總是網址友好。你也可以期望有一些醜陋的網址,比如一個5個字符的密鑰會加密到大約14個隨機查找的字符。

相關問題