解讀Web應用程式安全性問題的本質

2021-04-13 04:41:05 字數 1078 閱讀 9760

相信大家都或多或少的聽過關於各種web應用安全漏洞,諸如:跨site指令碼攻擊(xss),sql注入,上傳漏洞...形形色色.

在這裡我並不否認各種命名與歸類方式,也不評價其命名的合理性與否,我想告訴大家的是,形形色色的安全漏洞中,其實所蘊含安全問題本質往往只有幾個。 我個人把web應用程式安全性本質問題歸結以下三個部分:

1、輸入/輸出驗證(input/output validation)

2、角色驗證或認證(role authentication )

3、所有權驗證(ownership authentication)

說到這,讀者一定想知道我這三種分類與形形色色的安全性問題有什麼關係?下面我逐個給您概略解答:

輸入/輸出驗證

角色驗證或認證

我們就拿csdn來說吧,使用者有這些角色:其一可以說是遊客,就是瀏覽者沒有登入時的角色;其二是免費的註冊使用者;或許將來csdn深入發展了,業務有所更新,還會出現收費的註冊使用者。以上只是使用者角色,那在csdn公司內部還會有管理員角色,還有可能管理員又可以根據板塊分為各種不同的角色。大家看到了吧,你天天訪問的csdn一共可能有多少角色? 接下來的問題就是許可權問題了,為什麼會有角色? 就是為了控制許可權的。每種角色都有自己特定的與公共的許可權,這些許可權的邏輯關係是相當複雜的,如果乙個web應用在角色上沒有乙個詳細的合理的設計,將會給開發人員帶來無限痛苦和麻煩。那現在我要問幾個問題:你能保證每種角色只能做其份內的事兒?你是如何去保證的呢?方法可靠嗎?有沒有漏洞?...... 這,就是我要說的角色驗證或認證。btw:為什麼我會說驗證或認證呢?你可以這麼理解,角色性存在於兩個階段,其一進入階段,比如你登入的那一瞬間,你進入了乙個特定的角色;另乙個階段就是維持階段,你如何確保你登入後總是以登入時的身份在操作呢?那前者可以說是:認證,後者就是驗證了。(有點羅嗦不?)

所有權驗證

這個問題的存在也是基於角色的,只不過它所關心的是同級別的角色之間的許可權問題。就拿csdn來說吧,我是csdn的乙個免費使用者,你也是。現在的問題是:我可以替你操作嗎,我可以替你發表文章嗎?我能修改你的個性設定嗎?如果不能,csdn是如何實現的?雖然你和我都是普通使用者,但是你有你的隱私我也有我的隱私,如何保證嚴格的所有權驗證就顯得尤為關鍵了。比較簡單吧,這就是我所說的所有權驗證。

常見Web站點安全性問題

例子 其中page是傳入的引數,page的值為1,在伺服器進行處理時,可能會將page的值寫入sql中,比如 select from post where page 1 這樣就完成了一次查詢操作,並返回我們想要的值 但是若是進行非法操作比如 drop table post 那麼最後sql就變為 se...

Web安全性問題的層次關係

大家經常會聽到看到很多很多有關安全性方面的資訊,可以說形形色色,對於在網路安全方面不太專業的同志來說,有點眼花繚亂,理不出頭緒。在這裡,我來幫大家整理一下。以我個人多年來從事web安全方面的工作經驗及國外一些權威安全機構對web安全的層次性的理解,我們通常把它分為三個層次 網路安全。如防火牆 路由器...

《web應用程式安全性剖析》 管理使用者

之前都沒有仔細想過使用者管理這裡有這麼多需要考慮的部分。使用者通過賬號以及密碼來登陸,這裡的機制對於安全的設定也值得研究。最重要的是密碼的管理。密碼可以通過暴力攻擊等方式來進行。或者像之前csdn出現的問題,由於使用明文儲存,導致破解後的災難。亦或者是做對映關係。比如在a 使用這個郵箱和密碼,在另乙...