阿里內部都在強推的SpringScurity實戰筆記,與君共分享 寫在前面 主要內容 章節介紹 總結

寫在前面

Spring Scurity 的前身是Acegi Security, 在被收納爲Spring子項目後正式更名爲Spring Security。現已升級到5.1.3.RELEASE版本,加入了原生OAuth2.0框架,支持更加現代化的密碼加密方式。可以預見,在Java應用安全領域,Spring Security 會成爲被首先推崇的解決方案,就像我們看到服務器就會聯想到Linux一樣順理成章。

應用程序的安全性通常體現在兩個方面:認證和授權。

認證是確認某主體在某系統中是否合法、可用的過程。這裏的主體既可以是登錄系統的用戶,也可以是接入的設備或者其他系統。

授權是指當主體通過認證之後,是否允許其執行某項操作的過程。.

這些概念並非Spring Security獨有,而是應用安全的基本關注點。Spring Security可以幫助我們更便捷地完成認證和授權。

雖然Spring Security 有強大的功能,但它同時也有很高的學習成本。它囊括了身份認證的各種應用場景以及Web安全的大量知識,僅官方參考手冊就有數十萬字,並且還省略了諸多實現細節。許多開發人員在面對這樣的“龐然大物”時無從入手,更因爲對其不夠了解而在實際項目中不敢輕易採用。

在這裏小編爲大家帶來這篇在阿里內部都瘋狂傳播的Spring Security的祕籍,本篇由淺入深、抽絲剝繭地講解了Spring Security 的典型應用場景,另外,還分析了部分核心源碼,以及許多開發語言之外的安全知識。通過本文,大家不僅可以學習如何應用Spring Security,還可以學習借鑑它的實現思路,以將這種實現思路應用到其他開發場景中。

主要內容

本篇共分爲4個部分。

第1部分主要介紹Spring Security 的基本配置,包括默認配置、簡單表單認證,以及基於數據庫模型的認證與授權。

第2部分主要介紹各種定製化的配置場景,剖析Web項目可能遇到的安全問題,並講解如何使用Spring Security進行有效防護,部分章節還配備了詳細的源碼導讀。

第3部分將登錄用戶的數據來源從系統內轉移到社交平臺,詳細介紹了OAuth,並使用Spring Social整合Spring Security,實現QQ快捷登錄,滿足一般性的項目需求。

第4部分帶領讀者認識Spring Security OAuth框架,並基於該框架完整實現了OAuth客戶端、OAuth 授權服務器以及OAuth資源服務器三種角色。除此之外,還簡單剖析了Spring Security OAuth的部分核心源碼,以幫助讀者更好地理解OAuth框架。

請注意,爲了不影響大家的閱讀體驗,小編在這裏只是截取了各個章節介紹,大家既能夠了解主要內容,又閱讀起來簡潔快捷,有興趣深入瞭解學習的朋友,請留意文末~~~

章節介紹

第1章給大家簡單的介紹Spring Security,創建了一個簡單的Spring Security項目,帶領大家初步領略Spring Security帶來的便利。

第2章我們使用表單認證來保護URL資源。

第3章將更加深入地對Spring Security 進行配置,且初步使用授權機制。

在驗證用戶名和密碼之前,引入輔助驗證可有效防範暴力試錯,圖形驗證碼就是簡單且行之有效的一種輔助驗證方式。本章將使用過濾器和自定義認證兩種方式實現圖形驗證碼功能。

第5章主要講自動登錄和註銷登錄,關於網站的安全設計,通常是有一些矛盾點的。我們在作爲某些系統開發者的同時,也在充當着另外一些系統的用戶,一些感同身受的東西可以帶來很多思考。

第6章講會話管理,只需在兩個瀏覽器中用同一個賬號登錄就會發現,到目前爲止,系統尚未有任何會話併發限制。一個賬戶能多處同時登錄可不是一個好的策略。事實上, Spring Security已經爲我們提供了完善的會話管理功能,包括會話固定攻擊、會話超時檢測以及會話併發控制。

第7章講密碼加密,密碼安全是互聯網安全的一個縮影,我們在享受互聯網服務的同時,也應當對它投入更多的關注。

第8章介紹跨域,跨域是一種瀏覽器同源安全策略,即瀏覽器單方面限制腳本的跨域訪問。

第9章對跨域請求僞造的防護進行了講解,CSRF的全稱是( Cross Site Request Forgery) ,可譯爲跨域請求僞造,是一種利用用戶帶登錄態的cookie進行安全操作的攻擊方式。CSRF實際上並不難防,但常常被系統開發者忽略,從而埋下巨大的安全隱患。

第10章介紹單點登錄和CAS,單點登錄( Single Sign On, SsO)是指在多個應用系統中,只需登錄一次,即可同時以登錄態共享企業所有相關又彼此獨立的系統的功能。對於旗下擁有衆多系統的企業來說,單點登錄不僅降低了用戶的登錄成本,統一了不同系統間的賬號體系,還減少了各個系統在用戶設計上付出的精力。

第11章講HTTP認證,除系統內維護的用戶名和密碼認證技術外,Spring Security還支持HTTP層面的認證技術,包括HTTP基本認證和HTTP摘要認證兩種。

第12章講解@EnableWebSecurity與過濾器鏈機制。

第13章介紹用Spring Social實現OAuth對接,OAuth解決了在用戶不提供密碼給第三方應用的情況下,讓第三方應用有權獲取用戶數據以及基本信息的難題。

第14章講解用Spring Security OAuth實現OAuth對接。

總結

本篇按照What(背景知識)、How(實戰)Why(源碼分析)原則,抽絲剝繭地講解Spring Security的典型應用場景,提供一條由淺入深的Spring Security學習路線,並分析部分核心源碼,幫助大家快速掌握Spring Security的相關知識。

你是否愛上了這篇Spring Security實戰祕籍呢?那就關注小編+私信回覆【學習】來免費領取吧!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章