欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Java應(yīng)用程序安全框架-創(chuàng)新互聯(lián)

《從零打造項(xiàng)目》系列文章

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)融安免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

工具

  • 比MyBatis Generator更強(qiáng)大的代碼生成器

ORM框架選型

  • SpringBoot項(xiàng)目基礎(chǔ)設(shè)施搭建
  • SpringBoot集成Mybatis項(xiàng)目實(shí)操
  • SpringBoot集成MybatisPlus項(xiàng)目實(shí)操
  • SpringBoot集成Spring Data JPA項(xiàng)目實(shí)操

數(shù)據(jù)庫(kù)變更管理

  • 數(shù)據(jù)庫(kù)變更管理:Liquibase or Flyway

  • SpringBoot結(jié)合Liquibase實(shí)現(xiàn)數(shù)據(jù)庫(kù)變更管理

定時(shí)任務(wù)框架

  • Java定時(shí)任務(wù)技術(shù)分析
  • SpringBoot結(jié)合Quartz實(shí)現(xiàn)定時(shí)任務(wù)
  • SpringBoot結(jié)合XXL-JOB實(shí)現(xiàn)定時(shí)任務(wù)

緩存

  • 待更新

安全框架

  • Java應(yīng)用程序安全框架

開(kāi)發(fā)規(guī)范

  • 待更新
Java應(yīng)用安全框架

在構(gòu)建應(yīng)用程序時(shí),必須首先考慮其安全性。每個(gè)應(yīng)用程序都是通過(guò)網(wǎng)絡(luò)發(fā)布的,隨之而來(lái)的是安全、隱私和完整性風(fēng)險(xiǎn)的威脅。

根據(jù)開(kāi)放 Web 應(yīng)用程序安全項(xiàng)目 (OWASP),最重要的安全風(fēng)險(xiǎn)是:

Java 安全框架

大致定義如下:

  • SQL 注入。
  • 損壞的身份驗(yàn)證和會(huì)話管理。
  • 跨站點(diǎn)腳本 (XSS)。
  • 不安全的直接對(duì)象引用。
  • 安全配置錯(cuò)誤。
  • 敏感數(shù)據(jù)暴露。
  • 缺少功能級(jí)別訪問(wèn)控制。
  • 跨站點(diǎn)請(qǐng)求偽造 (CSRF)。
  • 使用具有已知漏洞的組件。
  • 未經(jīng)驗(yàn)證的重定向和轉(zhuǎn)發(fā)。

訪問(wèn)OWASP Top Ten以了解有關(guān)這些漏洞的更多信息。

Java 框架提供代碼重用能力,同時(shí)消除了構(gòu)建樣板代碼任務(wù)的需要。讓我們來(lái)看看一些優(yōu)秀的基于 Java 的框架,以提高應(yīng)用程序的安全性并加速您的業(yè)務(wù)增長(zhǎng)。

Java 安全框架

JAAS(Java 認(rèn)證和授權(quán)服務(wù))

JAAS 用作保護(hù) Java 應(yīng)用程序的 API。它包括許多為身份驗(yàn)證和授權(quán)而設(shè)計(jì)的 Java 包。JAAS 是 Java SE 1.3 中的一個(gè)可選包,之后,它從 1.4 版開(kāi)始成為 JDK 的一部分。

JAAS 可用于兩個(gè)目的:

  • 用于用戶身份驗(yàn)證,以可靠且安全地確定當(dāng)前正在執(zhí)行 Java 代碼的人員,無(wú)論該代碼是作為應(yīng)用程序、applet、bean 還是 servlet 運(yùn)行的;
  • 用于授權(quán)用戶,以確保它們具有執(zhí)行所執(zhí)行操作所需的訪問(wèn)控制權(quán)限。

JAAS 中的身份驗(yàn)證以可插入的方式執(zhí)行。它允許應(yīng)用程序擺脫基本的身份驗(yàn)證技術(shù)。

查看 API 和示例的參考指南。

Spring Security

Spring Security 是一個(gè)可以根據(jù)企業(yè)應(yīng)用需求進(jìn)行修改的框架。它克服了身份驗(yàn)證和訪問(wèn)控制的困難。

身份驗(yàn)證是設(shè)置主要是他們聲明的人(可能是用戶、設(shè)備或一些可以為您的應(yīng)用程序執(zhí)行操作的不同機(jī)器)的過(guò)程。授權(quán)是確定專業(yè)是否可以在您的應(yīng)用程序內(nèi)執(zhí)行操作的系統(tǒng)。

詳細(xì)學(xué)習(xí)參考官方文檔。

Apache Shiro

Apache Shiro 被認(rèn)為是一個(gè)非常有效的 Java 安全框架,它在所有類型的 Java 應(yīng)用程序上進(jìn)行加密、授權(quán)和會(huì)話管理,無(wú)論它們的大小如何。

Shiro 被設(shè)計(jì)成一個(gè)直觀且易于使用的框架,同時(shí)提供強(qiáng)大的安全功能。它是框架中立的,因此可以與任何 Java 支持的框架無(wú)縫協(xié)作。

有關(guān)詳細(xì)文檔,參閱官方網(wǎng)站。

HDIV

HDIV 是一個(gè) Java Web 應(yīng)用程序安全框架。它通過(guò)添加安全功能并維護(hù) API 和框架規(guī)范來(lái)擴(kuò)展 Web 應(yīng)用程序的行為。

它廣泛用于基于 Struts、Spring MVC、Grails、JSTL 等構(gòu)建的應(yīng)用程序,因?yàn)樗鼮殚_(kāi)發(fā)人員提供了急需的透明度,而不會(huì)增加應(yīng)用程序開(kāi)發(fā)的任何復(fù)雜性。

查看官方文檔以獲取更多詳細(xì)信息。

OACC

OACC 是用于 Java 的應(yīng)用程序安全框架,專為細(xì)粒度(對(duì)象級(jí))訪問(wèn)控制而設(shè)計(jì)。它專門為每個(gè)實(shí)施和控制實(shí)用程序的身份驗(yàn)證和授權(quán)需求提供功能齊全的 API - 它是有效且靈活的安全模型的完整實(shí)現(xiàn)。

OACC 利用抽象的援助來(lái)保護(hù)實(shí)用項(xiàng)目。這一關(guān)鍵抽象允許 OACC 提供豐富的 API,包括授予、撤銷和查詢功能,用于存儲(chǔ)和處理應(yīng)用程序的安全關(guān)系。

查看官方文檔以獲取更多詳細(xì)信息。

如何選擇安全框架

上述有五種安全框架,實(shí)際應(yīng)用中該如何選擇呢?首先聲明,本人對(duì) Spring Security 和 Apache Shiro 有所了解,具體使用過(guò) Spring Security,其他三種首次聽(tīng)說(shuō)。

JAAS(Java 認(rèn)證和授權(quán)服務(wù))

JAAS 雖然作為 JDK 的一部分,但我對(duì)它知之甚少,詳細(xì)介紹可以參考官方文檔,如何使用可以參考這篇文章。

為什么企業(yè)級(jí)應(yīng)用不使用 JAAS,我也沒(méi)找到專業(yè)解釋,自己琢磨了一番,發(fā)現(xiàn)了點(diǎn)門道。

先對(duì) JAAS API 中常用的一些類和接口做個(gè)簡(jiǎn)單的說(shuō)明。

  • LoginModule :確認(rèn)用戶的合法性(使用CallbackHandler或者其他類方法),并分配訪問(wèn)權(quán)限principal給subject;

  • LoginContext:為了實(shí)現(xiàn)用戶鑒別,建立相應(yīng)的環(huán)境,從配置文件中導(dǎo)入規(guī)則;

  • CallbackHandler:回調(diào)處理器,負(fù)責(zé)與用戶(代碼擁有者和執(zhí)行者)交互,確認(rèn)其身份的合法性;

  • Subject:表示登陸處理的目標(biāo),即一個(gè)被鑒別的用戶。并可關(guān)聯(lián)一個(gè)或多個(gè)pirncipal;

  • Principal:表示具有訪問(wèn)權(quán)限的一個(gè)實(shí)體,可以看作是可以執(zhí)行某種操作的證件。

這些類和接口的關(guān)系有個(gè)生動(dòng)的比喻:一個(gè)學(xué)校,入學(xué)的時(shí)候校方(LoginModule)根據(jù)學(xué)生(Subject)的入學(xué)通知來(lái)確定其合法 性,這個(gè)過(guò)程交由某工作人員(CallbackHandler)執(zhí)行,(CallbackHandler)確認(rèn)后,(LoginModule)給不同 (Subject)根據(jù)其身份發(fā)給相關(guān)的證件(Principal),有了該證件就可以訪問(wèn)對(duì)應(yīng)的資源,(Subject)根據(jù)自己的 (Principal)的級(jí)別可以使用和訪問(wèn)學(xué)校不同資源。

而上述這些 JAAS 的核心類,在 Spring Security 中有類似存在,Spring Security 提供了一個(gè)包來(lái)將身份驗(yàn)證請(qǐng)求委托給 Java 身份驗(yàn)證和授權(quán)服務(wù) (JAAS)。比如說(shuō)抽象類AbstractJaasAuthenticationProvider和 接口JaasAuthenticationCallbackHandler

package org.springframework.security.authentication.jaas;

import java.io.IOException;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.UnsupportedCallbackException;
import org.springframework.security.core.Authentication;

public interface JaasAuthenticationCallbackHandler {void handle(Callback callback, Authentication auth) throws IOException, UnsupportedCallbackException;
}

對(duì)比 JAAS 中的 CallbackHandler

package javax.security.auth.callback;
public interface CallbackHandler {void handle(Callback[] callbacks)
    throws java.io.IOException, UnsupportedCallbackException;
}

更多介紹推薦閱讀官方文檔。

由上可知,我們出于某些原因,沒(méi)有直接使用 JAAS,但是如果使用了 Spring Security,也算是間接地使用 JAAS。

Spring Security

Spring Security 最早不叫 Spring Security ,叫 Acegi Security,叫 Acegi Security 并不是說(shuō)它和 Spring 就沒(méi)有關(guān)系了,它依然是為 Spring 框架提供安全支持的。事實(shí)上,Java 領(lǐng)域的框架,很少有框架能夠脫離 Spring 框架獨(dú)立存在。

Acegi Security 基于 Spring,可以幫助我們?yōu)轫?xiàng)目建立豐富的角色與權(quán)限管理,但是最廣為人詬病的則是它臃腫繁瑣的配置,這一問(wèn)題最終也遺傳給了 Spring Security。

但是和 Shiro 相比,人們對(duì) Spring Security 的評(píng)價(jià)依然中重量級(jí)、配置繁瑣,對(duì)于初學(xué)者來(lái)說(shuō)比較難。直到 Spring Boot 橫空出世,這些問(wèn)題統(tǒng)統(tǒng)都得到緩解。在 Spring Boot 或者 Spring Cloud 中,如果想選擇一個(gè)權(quán)限管理框架,幾乎毫無(wú)疑問(wèn)的選擇 Spring Security,Shiro 在這個(gè)環(huán)境下已經(jīng)不具備優(yōu)勢(shì)了。

綜上,如果你所接觸的項(xiàng)目多是 SpringBoot 或者 SpringCloud,那么推薦學(xué)習(xí)使用 Spring Security。

Apache Shiro

無(wú)論是 Shiro 還是 Spring Security,最最核心的功能,無(wú)非就是兩方面:

  • 認(rèn)證
  • 授權(quán)

其功能特點(diǎn)如下圖所示:

Shiro核心功能

Shiro 比 Spring 更容易使用,功能強(qiáng)大、且 簡(jiǎn)單、靈活。是 Apache 下的項(xiàng)目比較可靠,且不跟任何的框架或者容器綁定,可以獨(dú)立運(yùn)行。如果是 Spring 項(xiàng)目,不建議使用 Shiro。

HDIV

HDIV 之前根本沒(méi)有聽(tīng)說(shuō)過(guò),官網(wǎng)介紹寫的比較厲害:Hdiv 抵御了 OWASP 前 10 名中包含的 90% 的應(yīng)用程序安全風(fēng)險(xiǎn)——對(duì)最關(guān)鍵的 Web 應(yīng)用程序安全漏洞的廣泛共識(shí)——例如 SQL 注入、跨站點(diǎn)腳本、跨站點(diǎn)請(qǐng)求偽造、數(shù)據(jù)篡改和暴力攻擊. Hdiv 提供了比當(dāng)前任何可用的解決 Web 應(yīng)用程序安全風(fēng)險(xiǎn)的解決方案更高的有效性。

同時(shí)還為一些知名企業(yè)提供安全服務(wù),如下圖所示:

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-aAUJOfmg-1669618897120)(https://camo.githubusercontent.com/5e1d5e9c11c99f3dc8f505d3a875280378d1da48a8ed77042a23cfca2b035f0e/68747470733a2f2f6864697673656375726974792e636f6d2f696d672f737570706f727465642d746563686e6f6c6f676965732e706e67)]

而且在 Github 介紹中提到已與 SpringMVC 集成,相較于 Spring Security 功能不夠完整,且學(xué)習(xí)成本較大,以及適用范圍不夠廣,所以不推薦使用。

OACC

OACC (讀音 Oak)是 Object Access Control serviCe 的縮寫。它是一個(gè)高級(jí)的 Java? 應(yīng)用安全框架. OACC 提供高性能 API ,為 Java應(yīng)用程序提供了基于權(quán)限的授權(quán)服務(wù)。簡(jiǎn)而言之,OACC 可以讓你的應(yīng)用通過(guò)發(fā)出問(wèn)題來(lái)保證安全:“實(shí)體 ‘A’ 是否被允許在實(shí)體 ‘B’ 上進(jìn)行操作 ‘p’。

在官網(wǎng)可以看到,OACC 很早就不再更新了。

OACC版本更新

此外,如果你想使用 OACC,還需要在對(duì)應(yīng)的數(shù)據(jù)庫(kù)中執(zhí)行必要的腳本,比如說(shuō) MySQL 數(shù)據(jù)庫(kù)。

OACC MySQL執(zhí)行腳本

OACC表結(jié)構(gòu)

這意味著你需要按照 OACC 的要求來(lái)設(shè)計(jì)表結(jié)構(gòu),這是不能容忍的。理所當(dāng)然,我們不考慮該框架。

小結(jié)

綜上,Spring Security 和 Shiro 是目前最受歡迎的兩款安全框架,但因?yàn)?SpringBoot 和 SpringCloud 的火熱,讓同為 Spring 家族的 Spring Security 也變得火熱起來(lái),所以推薦學(xué)習(xí)使用 Spring Security。

參考文獻(xiàn)

Java 安全框架

構(gòu)建安全應(yīng)用程序的前 5 個(gè) Java 應(yīng)用程序安全框架

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

分享題目:Java應(yīng)用程序安全框架-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://chinadenli.net/article34/dipspe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航微信公眾號(hào)標(biāo)簽優(yōu)化Google網(wǎng)頁(yè)設(shè)計(jì)公司企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)