2010-09-10 82 views
2

我有一個ASP.NET MVC站點與一個私人網站管理應用程序與ASP.NET sql支持的授權保護。我需要爲公共網站添加一個登錄名,以允許訪問者註冊一個帳戶。我應該擴展公共站點的ASP.NET安全嗎?

我在想,我應該爲公共站點創建完全獨立的存儲空間,而不是擴展現有的用戶數據庫,並依靠角色讓公共用戶離開後臺。有沒有理由不這樣做?

回答

1

是的。您可以將專用數據庫與公用數據庫隔離開來。創建2個數據庫用戶帳戶,確保他們只能訪問他們需要的1個數據庫。公共和私人應用程序將使用不同的帳戶。然後鎖定數據庫帳戶以確保它們只具有Web應用程序運行所需的權限。 (我不確定你使用的是哪個數據庫,如果你使用的是ms-sql,確保他們沒有權限訪問xp_cmdshell,如果你在mysql下面,確保這個賬戶沒有FILE權限。但這超出了這個問題的範圍。)

如果在您的站點的公共部分發現SQL注入漏洞,那麼他們將能夠訪問那個數據庫,使您的私人站點不受攻擊影響。

+0

人,我不知道這件事。我的一部分人說,如果網站可以SQL注入,我就會遇到更大的問題,而這只是損害控制。 – Paul 2010-09-13 19:40:31

+0

@Paul你應該嘗試利用sql注入漏洞,然後可能那部分將會消失。它被稱爲縱深防禦,你可能無法找到所有事情,所以你必須計劃最糟糕的。這就是你輸入密碼的原因。如果你已經正確設置了你的SQL權限,攻擊者可以得到的最多就是一個額外的選擇。執行多個quires並獲得對cmd.exe的訪問權限不應該是可能的,但它是默認情況下。 – rook 2010-09-13 20:57:32

+0

啊,「深度防禦」正是我所期待的。所以這是我原來的計劃,但現在我覺得我可以聰明地爲它辯護。經過一番閱讀,似乎深度防禦是指防禦不同的攻擊媒介,而不是穿透第一層防禦的同一次攻擊。我認爲,哈希密碼的原因主要是爲了防止惡意僱員竊取用戶帳戶 - 但同樣的邏輯適用於我的情況。 – Paul 2010-09-14 01:04:53

0

時間和潛在的金錢將是一個原因。否則,如果你有時間的話。根據需要,不知道具體的問題,它也可能增加很多複雜性...

HTH。

0

你會擁有一個以上角色的用戶嗎?你能最終將同一個用戶存儲在多個數據庫中嗎?如果是這樣,我會讓你的用戶保持統一的數據庫。

相關問題