解析Web應用服務弱點 上篇
Web應用服務弱點:不可靠的默認值
在Web應用程序設計時,為了提高用戶的輸入效率,會設置比較多的默認值。但是這些默認值是把雙刃劍。即可以提高用戶輸入的速度,但是也會影響Web應用程序的安全性。舉一個簡單的例子。Web服務器的默認端口是什么?80。正確。這個信息只要稍微有點Web 知識的人都知道。
現在的問題是,大家都知道這個信息,那么攻擊者就可以輕而易舉的通過這個端口來進行攻擊。如可以利用工具掃描80端口是否開啟來判斷服務器是否啟用了Web服務。為此如果Web服務沒有改變這個默認的端口值,那么就將導致很多安全問題。
再如,有些管理員在設置用戶名與密碼的時候,可能給用戶的默認用戶名為空或者跟管理員帳戶相同的名字。雖然他們可能提醒用戶需要盡快的去更改密碼。但是根據筆者的經驗,不少用戶都沒有這個安全意識。
可見,為Web應用程序設置默認值時,并不怎么可靠。為此筆者建議,對于一些關鍵的應用,如端口、管理員帳戶名、密碼等信息最好不要采用默認值。這會降低Web應用程序的安全性能。
Web應用服務弱點:關鍵信息沒有采取加密處理
筆者以前研究過一款Compiere的ERP系統,其有B/S與C/S兩種架構。在登陸的時候,需要用戶輸入用戶名與密碼。在輸入這個信息的時候,密碼采用了掩碼的形式,這確實可以起到一定的保護效果。但是用戶名在后臺數據庫中存儲的,以及從網頁客戶端傳輸到應用服務器、數據庫服務器的過程中,采用的都是明碼的形式。
這也就是說,只要攻擊者采用一些嗅探工具、或者攻破了數據庫,那么對于這個應用來說,攻擊者就可以暢通無阻的進行一些破壞行為。相反,如果我們對于這些關鍵信息都采取了加密處理。那么即使攻擊者有了這些數據,對于他們來說,也是沒用任何用處。
無論是在數據庫服務器,還是在客戶端的Cookies中,不直接存儲沒有加密的掛念信息(如密碼或者其他私有數據),這是提高數據安全性的一個首要的原則。如果這些數據暴露了,但是所采用的加密方案將防止暴露用戶的密碼。
了解這個基本的原則之后,那么管理人員就需要關注,該選擇使用哪種加密技術。選擇的加密技術的不同,直接影響到Web服務的安全性。但是需要注意的是,加密技術也是一把雙刃劍。一般來說,在同等條件下,加密級別越高,其需要的資源開銷也就越大。簡單的說,加密的級別與系統的性能是成反向變動的。
Web應用服務的弱點本文就為大家先介紹兩個,更多的內容我們還會繼續總結,與大家分享。歡迎大家閱讀:解析Web應用服務弱點 下篇
【編輯推薦】