簡體   English   中英

設計安全的Intranet(ASP.NET)應用程序

[英]designing secure intranet (ASP.NET) application

我想知道是否需要在此asp.net應用程序上添加任何其他類型的安全性-Web表單(僅在網絡域和通過VPN連接可用)?

應用程序環境: Asp.net 4.0,Vb.net,Oracle 10g,Web服務,Window Server 2003或2008,托管在域上

用戶身份驗證模式 :窗口(不使用asp.net成員身份)

身份驗證方案:
可通過Intranet站點訪問該應用程序,並且系統使用其系統用戶名對用戶進行身份驗證。 在默認頁面上,系統將首先獲取當前用戶名(HttpContext.Current.User.Identity.Name),然后在用戶表(oracle DB)中將其匹配,如果匹配,則存儲過程將返回所有訪問權限(菜單詳細信息)與此用戶組相關。 oracle DB中有一個用戶組和權限表。 在存儲過程中,系統還將在進行任何DML事務之前檢查用戶權限。

主要安全問題

重要:限制人們訪問信息取決於他們的權限。 普通用戶不應訪問其他人的數據。

未成年人:我們不希望任何人進入辦公室網絡之外的系統。

如Joachim所說,這種安排僅支持在本地網絡上運行的Windows系統。 轉向基本身份驗證將允許更多的客戶端連接,但無需HTTPS即可在網絡上公開密碼(有效地為明文形式)。 表單身份驗證類似。

沒有服務器身份驗證,用戶可能會在不知情的情況下被重定向到類似的服務器,或者遭受中間人攻擊。 HTTPS為您提供服務器證書。 這在本地網絡上可能不是問題,但是用戶的hosts (在c:\\ windows \\ system32 \\ drivers \\ etc)文件通常容易受到攻擊。

沒有加密,任何用戶都可以嗅探通過網絡來回發送的信息,前提是他們位於同一子網中。 對於大多數應用程序來說,這可能是可接受的風險,但如果信息是敏感的,例如包含敏感或個人信息,則不是。

如果人們執行諸如批准之類的重要操作,請考慮重播攻擊(例如,請參閱如何防止重播攻擊? )。

考慮審核對數據庫的訪問,尤其是對用戶組和權限表的訪問。 有人可以添加自己或將他們移動到組中,執行操作,然后將自己刪除。 檢查您的頁面上是否有SQL注入以及可以完成此操作的類似攻擊。

總而言之,人們破壞或干擾系統的可能性有多大,您願意投資多少來保護它? 假設服務器可以處理負載,那么第一步就很難克服HTTPS。

不確定您使用的是哪種ASP.Net技術(MVC / Razor / Web窗體)。

如果使用的是Web窗體 ,則可以立即使用ASP.NET登錄控件,LoginView控件 它們與ASP.Net表單身份驗證一起使用(使用或不使用ASP.net成員資格)。 您還可以利用Roles

如果您的Intranet服務器沒有公開(以任何方式)未暴露在網絡中,則應“對其進行保護”。 當然,這是一個大膽的聲明,完全取決於您的網絡實施-例如,子網划分,內部網/無nat /路由/無端口轉發,無dns等。這使VPN成為您從外部暴露的唯一途徑,那么您必須對您的VPN基礎結構實施適當的安全策略-例如一次性密碼,客戶端檢查等。


更新:

如果使用Active Directory,則可以在AD中創建用戶/組以提供相應的訪問權限(例如,財務AD組只能訪問“財務”文件夾)。 但是,我沒有與Internet Explorer之外的NTLM瀏覽器支持保持同步。

您確實提到過用戶數據在Oracle數據庫中(?)。 我不熟悉不允許使用db / Oracle進行登錄屏幕訪問(訪問網絡資源)的解決方案。

同樣,這意味着用於VPN訪問的一次性密碼可能不可用。 研究基於令牌的VPN,以便用戶仍然可以使用其AD憑據,但每次都需要一個新令牌-這將有助於減輕“黃色便箋中的密碼”(因為您可以更嚴格地控​​制令牌)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM