亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

OWASP 10 大 Web 安全問題在 JEE 體系完全失控

Cc_2011 / 3474人閱讀

摘要:希望引起大家這些安全問題的足夠重視。允許攻擊者在受害者的瀏覽器上執(zhí)行腳本,從而劫持用戶會(huì)話危害網(wǎng)站或者將用戶轉(zhuǎn)向惡意網(wǎng)站。

雖然,JavaEE 內(nèi)置了一些非常優(yōu)秀的安全機(jī)制,但是它不能全面應(yīng)對(duì)應(yīng)用程序面臨的各種威脅,尤其許多最常見的攻擊:跨站攻擊(XSS),SQL 注入,Cross-Site Request Forgery (CSRF), 與 XML eXternal Entities (XXE) 等。如果你不對(duì)系統(tǒng)做大量的安全測(cè)試、漏洞修補(bǔ)以及購(gòu)買應(yīng)用級(jí)安全防護(hù)工具,應(yīng)用程序就完全暴露在這些攻擊之下。

幸運(yùn)的是,開源 Web 應(yīng)用安全組織(OWASP)已經(jīng)將這下面10個(gè) Web 問題列為最重要的安全攻擊,詳情請(qǐng)參見:「Ten Most Critical Web Application Security Risks」 報(bào)告。 希望引起大家這些安全問題的足夠重視。

下面就詳細(xì)解釋一下這些最著名的安全攻擊在 JavaEE 的 Web 應(yīng)用程序和 Web 服務(wù)上是如何工作的:

1、注入攻擊

在編寫程序時(shí),任何可疑的信息輸入都可能是注入攻擊,比如 request.getParameter(), request.getCookie() 以及request.getHeader(),甚至在用戶命令行接口也存在注入風(fēng)險(xiǎn)。如果開發(fā)人員以數(shù)據(jù)和 SQL 命令拼接的方式形成 SQL 語(yǔ)句就存在 SQL 注入風(fēng)險(xiǎn),比如: “SELECT * FROM users WHERE username=‘“ + request.getParameter(“user”) + “‘ AND password=‘“ + request.getParameter(“pass”) = “‘“; 開發(fā)者正確的寫法應(yīng)該是用 PreparedStatement 方式避免黑客有機(jī)會(huì)改變 SQL 語(yǔ)句的原意進(jìn)而控制數(shù)據(jù)庫(kù)。除了 SQL 注入還有很多注入攻擊的方式,包括:Command Injection, LDAP Injection, 與 Expression Language (EL) Injection,所有的這些注入都非常非常危險(xiǎn),在編寫接受數(shù)據(jù)的模塊時(shí)一定要非常非常小心。

2、失效的身份和回話管理

JavaEE 對(duì)身份校驗(yàn)和會(huì)話管理都能夠支持,但是安全方面做得很不夠,有很多種方法可以破壞。程序員不得不確保每個(gè)身份校驗(yàn)都通過 SSL 安全通道,并且還要確保沒有異常發(fā)生。如果不幸暴露了一個(gè) JSESSIONID,黑客只要掌握了該 JSESSIONID 就可以劫持會(huì)話,很多時(shí)候?yàn)榱朔乐箷?huì)話固定攻擊還不得不對(duì) JSESSIONID 進(jìn)行混淆。使用 response.encodeURL() 將 JSESSIONID 加到 URL 里面是非常危險(xiǎn)的,JSESSIONID 很容易被偷竊,這種行為一定要避免。

3、Cross-Site Scripting (XSS)

若應(yīng)用程序收到不可信的數(shù)據(jù),在沒有進(jìn)行適當(dāng)?shù)尿?yàn)證和轉(zhuǎn)義的情況下,就將它發(fā)送給一個(gè)網(wǎng)頁(yè)瀏覽器,就會(huì)產(chǎn)生跨站腳本攻擊(簡(jiǎn)稱 XSS)。XSS 允許攻擊者在受害者的瀏覽器上執(zhí)行腳本,從而劫持用戶會(huì)話、危害網(wǎng)站、或者將用戶轉(zhuǎn)向惡意網(wǎng)站。

4、不安全的直接對(duì)象引用

當(dāng)開發(fā)人員暴露一個(gè)對(duì)內(nèi)部實(shí)現(xiàn)對(duì)象的引用時(shí),例如,一個(gè)文件、目錄或者數(shù)據(jù)庫(kù)密匙,就會(huì)產(chǎn)生一個(gè)不安全的直接對(duì)象引用。在沒有訪問控制檢測(cè)或其他保護(hù)時(shí),攻擊者會(huì)操控這些引用去訪問未授權(quán)數(shù)據(jù)。

5、安全配置錯(cuò)誤

現(xiàn)代 JavaEE 應(yīng)用程序和框架如 Struts,Spring 都有很多的安全配置,當(dāng)使用這些框架一定要確保這些配置是正確的。比如在開發(fā) Web 應(yīng)用程序時(shí)一定要當(dāng)心 里的 標(biāo)簽,該標(biāo)簽的意思是 security-constraint 只作用于標(biāo)簽里面列出的方法,黑客可以利用這個(gè)使用列表以外的方法如:HEAD 和 PUT 進(jìn)行攻擊,從而越過安全限制。大多數(shù)情況下開發(fā)者應(yīng)該刪掉 web.xml 里面的 標(biāo)簽。

6、敏感信息泄露

Java 使用擴(kuò)展庫(kù)的方式實(shí)現(xiàn)加解密,Java 提供通用的接口,任何用戶,只需要簡(jiǎn)單的配置,都可以根據(jù)接口來實(shí)現(xiàn)加密,這樣的好處是擴(kuò)展性很強(qiáng),弊端是如何正確使用密碼庫(kù)是非常不容易事情:第一步,找一個(gè)基于 JCE 的頂級(jí)加密庫(kù),提供簡(jiǎn)單、安全的加密方法,Jasypt 與 ESAPI 就非常不錯(cuò)。第二步,應(yīng)該使用強(qiáng)加密算法如:加密用 AES,哈希用 SHA256,像密碼這種敏感信息,廣哈希是不夠的,黑客可以通過 Rainbow 表來破譯,因此需使用自適應(yīng)安全算法如 bcrypt 或 PBKDF2。任何使用不當(dāng)都可能造成敏感信息泄露。

7、功能級(jí)訪問控制缺失

JavaEE 同時(shí)支持聲明式和編程兩種訪問控制方式,像 Spring 等框架也支持基于注解的訪問控制,但是很多應(yīng)用程序還是選擇創(chuàng)建自己的訪問控制流程,其實(shí)這是非常危險(xiǎn)的行為。更重要的是要確保每一個(gè)暴露出去的接口和 Web 服務(wù)要有正確的訪問控制,千萬不要想當(dāng)然的假設(shè)客戶應(yīng)該可以控制一切,這樣黑客就可以直接訪問程序了。

8、 跨站請(qǐng)求偽造(CSRF )

每一個(gè)狀態(tài)改變,應(yīng)用程序都應(yīng)該校驗(yàn)該請(qǐng)求是否偽造,開發(fā)者在每一個(gè)用戶會(huì)話里面放置一個(gè)隨機(jī)令牌,然后每次請(qǐng)求進(jìn)來都進(jìn)行校驗(yàn),否則攻擊者可能會(huì)創(chuàng)建一些包含有害標(biāo)簽,例如:IMG, SCRIPT, FRAME 或者 FORM,這些標(biāo)簽可能會(huì)指向沒有保護(hù)的應(yīng)用程序,當(dāng)受害者訪問這樣的頁(yè)面,瀏覽器就會(huì)自動(dòng)產(chǎn)生一個(gè)偽造的 HTTP 請(qǐng)求到標(biāo)簽里指定的 URL,這個(gè) URL 通常會(huì)包含受害者的憑證。

9、使用含有已知漏洞的組件

現(xiàn)代 JavaEE 應(yīng)用程序通常會(huì)包括數(shù)百種庫(kù),尤其像依賴管理工具問世5年來,這個(gè)數(shù)目更是爆炸式的增長(zhǎng)。廣泛應(yīng)用的Java 庫(kù)都包含了很多已知漏洞,這些漏洞非常危險(xiǎn)。對(duì)這些漏洞沒有其他辦法,只能等庫(kù)的提供商修復(fù)漏洞,及時(shí)更新到最新版本。

10、未驗(yàn)證的重定向和轉(zhuǎn)發(fā)

?Web 應(yīng)用程序經(jīng)常將用戶重定向或轉(zhuǎn)發(fā)到其他網(wǎng)頁(yè)和網(wǎng)站,并且利用不可信的數(shù)據(jù)去判定目的頁(yè)面。如果沒有得到適當(dāng)驗(yàn)證,攻擊者可以重定向受害用戶到釣魚軟件或惡意網(wǎng)站,或者使用轉(zhuǎn)發(fā)去訪問未授權(quán)的頁(yè)面, 在 JavaEE Web 程序里當(dāng)調(diào)用 response.sendRedirect() 在使用 request.getParameter() 或 request.getCookie() 去獲取不信任的數(shù)據(jù)時(shí),經(jīng)常會(huì)發(fā)生這種情況。

每個(gè) JavaEE 程序員一定會(huì)經(jīng)常遇到這十個(gè)安全問題,同時(shí)新的攻擊和漏洞不斷地被發(fā)現(xiàn),我們現(xiàn)在能做的就是在開發(fā)、測(cè)試和部署的過程中不斷地用安全代碼檢查工具對(duì)項(xiàng)目進(jìn)行掃描,檢查不修復(fù)漏洞。

大家可以嘗試用 Eclipse 的一些免費(fèi)對(duì)比插件來檢查這些漏洞,這些不僅是靜態(tài)分析工具,C4E 是一個(gè)非常有代表意義的工具,它利用 Java Instrumentation API 去見監(jiān)控應(yīng)用中所有和安全相關(guān)的內(nèi)容。 它還可以實(shí)時(shí)分析整個(gè)數(shù)據(jù)流,在一個(gè)復(fù)雜的應(yīng)用里從請(qǐng)求開始跟蹤數(shù)據(jù)。 比如 JavaEE Web 應(yīng)用里常見的數(shù)據(jù)流如下:代碼從 request 取得參數(shù),用 base64 解碼,把數(shù)據(jù)存到 Map 里,再將 Map 存到一個(gè) Bean 里面,然后將這個(gè)Bean 放到 Session 里作為 attribute,最后從 JSP 里取出,使用 EL 語(yǔ)言將這個(gè) Bean 值填入頁(yè)面。Eclipse 對(duì)比工具就可以跟蹤這個(gè)數(shù)據(jù)流并報(bào)告是否存在 XSS 漏洞。這個(gè)工具非常方便,甚至對(duì)使用了非常復(fù)雜的框架和庫(kù)的應(yīng)用程序也管用,較現(xiàn)有的很多分析工具在速度,準(zhǔn)確性和易用性上都有明顯優(yōu)勢(shì)。

當(dāng)然,還有現(xiàn)在非常流行的 RASP(Runtime Aplication Security Protector),也是對(duì)付這十大安全問題的利器,它將代碼實(shí)時(shí)檢查和實(shí)時(shí)攔截相結(jié)合,將安全保護(hù)代碼和應(yīng)用程序結(jié)合在一起,像疫苗一樣使應(yīng)用程序具備自我免疫的能力。這是 Gartner 極力推薦的應(yīng)用程序安全保護(hù)方案,它使用非常方便,保護(hù)實(shí)時(shí)徹底,容易使用,不需要修改任何應(yīng)用程序代碼就可以輕松實(shí)現(xiàn)安全保護(hù)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/11156.html

相關(guān)文章

  • 總要先爬出坑的JEE架構(gòu)

    摘要:只要滿足規(guī)范的放入該容器,馬上就會(huì)被容器進(jìn)行高效率的管理。根據(jù)康威定律,設(shè)計(jì)系統(tǒng)的組織時(shí),最終產(chǎn)生的設(shè)計(jì)等價(jià)于組織的溝通結(jié)構(gòu),通俗來講,團(tuán)隊(duì)的交流機(jī)制應(yīng)該與架構(gòu)分層交互機(jī)制相對(duì)應(yīng)。 本博客 貓叔的博客,轉(zhuǎn)載請(qǐng)申明出處 先來看看官網(wǎng)對(duì)它的定義。 Java平臺(tái)企業(yè)版(Java EE)是社區(qū)驅(qū)動(dòng)的企業(yè)軟件的標(biāo)準(zhǔn)。Java EE是使用Java Community Process開發(fā)的,其中包括...

    Coding01 評(píng)論0 收藏0
  • 總要先爬出坑的JEE架構(gòu)

    摘要:只要滿足規(guī)范的放入該容器,馬上就會(huì)被容器進(jìn)行高效率的管理。根據(jù)康威定律,設(shè)計(jì)系統(tǒng)的組織時(shí),最終產(chǎn)生的設(shè)計(jì)等價(jià)于組織的溝通結(jié)構(gòu),通俗來講,團(tuán)隊(duì)的交流機(jī)制應(yīng)該與架構(gòu)分層交互機(jī)制相對(duì)應(yīng)。 本博客 貓叔的博客,轉(zhuǎn)載請(qǐng)申明出處 先來看看官網(wǎng)對(duì)它的定義。 Java平臺(tái)企業(yè)版(Java EE)是社區(qū)驅(qū)動(dòng)的企業(yè)軟件的標(biāo)準(zhǔn)。Java EE是使用Java Community Process開發(fā)的,其中包括...

    bergwhite 評(píng)論0 收藏0
  • 為什么主流網(wǎng)站無法捕獲 XSS 漏洞?

    摘要:二十多年來,跨站腳本簡(jiǎn)稱漏洞一直是主流網(wǎng)站的心頭之痛。大多數(shù)主流網(wǎng)站,包括谷歌,,以及,都曾受過漏洞的影響。而且,諸如運(yùn)行時(shí)應(yīng)用自我保護(hù)等網(wǎng)關(guān)安全技術(shù)也有助于檢測(cè)并防御對(duì)漏洞的攻擊。 二十多年來,跨站腳本(簡(jiǎn)稱 XSS)漏洞一直是主流網(wǎng)站的心頭之痛。為什么過了這么久,這些網(wǎng)站還是對(duì)此類漏洞束手無策呢? 對(duì)于最近 eBay 網(wǎng)站曝出的跨站腳本漏洞,你有什么想法?為什么會(huì)出現(xiàn)這樣的漏網(wǎng)之魚...

    worldligang 評(píng)論0 收藏0
  • 《Android惡意代碼分析與滲透測(cè)試》作者趙涏元:Android平臺(tái)安全問題的特點(diǎn)和價(jià)值

    摘要:趙涏元的最新作品惡意代碼分析與滲透測(cè)試詳細(xì)地講解了惡意代碼在各種渠道的散播方式,并針對(duì)開發(fā)者和用戶介紹如何應(yīng)對(duì)此類威脅。問您撰寫惡意代碼分析與滲透測(cè)試的初衷是什么我每次寫書的時(shí)候,最先考慮的是這個(gè)主題是否是韓國(guó)國(guó)內(nèi)已有論述的。 非商業(yè)轉(zhuǎn)載請(qǐng)注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/206074 趙涏元目前在KB投資證券公...

    venmos 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<