伊人99re_av日韩成人_91高潮精品免费porn_色狠狠色婷婷丁香五月_免费看的av_91亚色网站

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 軟件研發(fā) > 【專家視點】細數(shù)JavaEE中遺漏的10個最重要安全控制

【專家視點】細數(shù)JavaEE中遺漏的10個最重要安全控制

2016-06-12 14:17:25 | 來源:中培企業(yè)IT培訓網(wǎng)

JavaEE有一些超贊的內置安全機制,但它們遠遠不能覆蓋應用程序要面臨的所有威脅。很多常見攻擊,例如跨站點腳本攻擊(XSS)、SQL注入、跨站點偽造請求(CSRF),以及XML外部實體(XXE)絲毫沒有涵蓋。你可以阻止 web 應用程序和web服務暴露于這些攻擊,但這需要一定量的工作和測試。中培偉業(yè)負責《JAVA高級開發(fā)技術實戰(zhàn)》培訓的專家龔老師介紹道,目前web應用程序有10個重要的安全風險。
龔老師隨后對這些關鍵的風險如何應用于JavaEE的web應用程序和web服務進行了介紹。
1. 注入
  注入發(fā)生在開發(fā)人員獲取不可信的信息,例如request.getParameter(),request.getCookie(),或request.getHeader(),并在命令接口中使用它的任何時候。例如,SQL注入在你連接不可信的數(shù)據(jù)到常規(guī)SQL查詢,如“SELECT * FROM users WHERE username=‘“ + request.getParameter (“user”) + “‘AND password=‘“ + request.getParameter (“pass”) = “‘“時發(fā)生。開發(fā)人員應該使用PreparedStatement來防止攻擊者改變查詢的含義和接管數(shù)據(jù)庫主機。還有許多其他類型的注入,如Command注入、LDAP注入以及Expression Language(EL)注入,所有這些都極度危險,因此在發(fā)送數(shù)據(jù)到這些解釋器的時候要格外小心。
2. 損壞的驗證和會話管理
  JavaEE支持身份驗證和會話管理,但這里有很多容易出錯的地方。你必須確保所有經(jīng)過驗證流量都通過SSL,沒有例外。如果你曾經(jīng)暴露JSESSIONID,那么它就可被用來在你不知情的情況下劫持用戶會話。你應該旋轉JSESSIONID,在用戶進行身份驗證以防止會話固定攻擊(Session Fixation attack)的時候。你應該避免使用response.encodeURL(),因為它會添加用戶的JSESSIONID到URL,使得更容易被披露或被盜。
3. 跨站點腳本攻擊(XSS)
  XSS發(fā)生在當JavaEE開發(fā)人員從HTTP請求獲取不可信的信息,并把它放到HTTP響應中,而沒有適當?shù)纳舷挛妮敵鼍幋a的時候。攻擊者可以利用這個行為將他們的腳本注入網(wǎng)站,然后在這個網(wǎng)站上劫持會話和竊取數(shù)據(jù)。為了防止這些攻擊,開發(fā)人員需要執(zhí)行敏感的上下文輸出編碼。如果你把數(shù)據(jù)轉換成 HTML,使用&#xx;格式。請務必括號HTML屬性,因為有很多不同字符而不帶括號的屬性會被終止。如果你把不可信的數(shù)據(jù)放到JavaScript,URL或CSS中,那么對于每一個你都應該使用相應的轉義方法。并且在和嵌套上下文,如一個用Javascript寫的在 HTML 屬性中的URL打交道時,要非常小心。你可能會想要編碼庫,例如OWASP ESAPI的幫助。
4. 不安全的直接對象引用
  任何時候應用程序暴露了一個內部標識符,例如數(shù)據(jù)庫密鑰,文件名,或hashmap索引,攻擊者就可以嘗試操縱這些標識符來訪問未經(jīng)授權的數(shù)據(jù)。例如,如果你將來自于HTTP請求的不可信的數(shù)據(jù)傳遞到Java文件構造器,攻擊者就可以利用“../”或空字節(jié)攻擊來欺騙你的驗證。你應該考慮對你的數(shù)據(jù)使用間接引用,以防止這種類型的攻擊。ESAPI 庫支持促進這種間接引用的ReferenceMaps。
5. 錯誤的安全配置
  現(xiàn)代的JavaEE應用程序和框架,例如Struts和Spring中有著大量的安全設置。確定你已經(jīng)瀏覽過這些安全設置,并按你想要的那樣設置。例如,小心<security-constraint>中的<http-method>標簽。這表明安全約束僅適用于列出的方法,允許攻擊者使用其他HTTP方法,如HEAD和PUT,來繞過整個安全約束。也許你應該刪除 web.xml 中的<http-method>標簽。
6. 敏感數(shù)據(jù)暴露
  Java有大量的加密庫,但它們不容易正確使用。你應該找到一個建立在JCE基礎上的庫,并且它能夠方便、安全地提供有用的加密方法。比如Jasypt和ESAPI就是這樣的庫。你應該使用強大的算法,如AES用于加密,以及SHA256用于hashes。但是要小心密碼hashes,因為它們可以利用Rainbow Table被解密,所以要使用自適應算法,如bcrypt或PBKDF2。
7. 缺少功能級訪問控制
  JavaEE支持聲明式和程序式的訪問控制,但很多應用程序仍然會選擇創(chuàng)造它們自己的方案。像Spring框架也有基于注釋的訪問控制基元。最重要的事情是要確保每一個暴露的端口都要有適當?shù)脑L問控制檢查,包括web服務。不要以為客戶端可以控制任何東西,因為攻擊者會直接訪問你的端點。
8. 跨站點偽造請求(CSRF)
  每個改變狀態(tài)的端點需要驗證請求有沒有被偽造。開發(fā)人員應該在每個用戶的會話中放入隨機令牌,然后當請求到達的時候驗證它。否則,攻擊者就可以通過鏈接到未受保護的應用程序的惡意IMG,SCRIPT, FRAME或FORM標簽等創(chuàng)建“攻擊”頁面。當受害者瀏覽這種頁面時,瀏覽器會生成一個“偽造”的HTTP請求到URL在標簽中被指定的任何內容,并且自動包括受害人的認證信息。
9. 使用帶有已知漏洞的組件
  現(xiàn)代的JavaEE應用程序有數(shù)百個庫。依賴性解析工具,如Maven,導致了這個數(shù)字在過去五年時間里出現(xiàn)爆炸式增長。許多廣泛使用的Java庫都有一些已知的漏洞,會讓web應用程序被完全顛覆。解決的辦法是及時更新庫。不要只運行單一掃描,因為新的漏洞每天都在發(fā)布。
10. 未經(jīng)驗證的轉址和轉送
  任何時候你的應用程序使用不可信的數(shù)據(jù),例如request.getParameter()或 request.getCookie(),在調用 response.sendRedirect()時,攻擊者可以強制受害者的瀏覽器轉到一個不受信任的網(wǎng)站,目的在于安裝惡意軟件。forward也存在著類似的問題,不同之處在于攻擊者可以轉送他們自己到未經(jīng)授權的功能,如管理頁面。一定要仔細驗證轉址和轉送目標。
  你應該持續(xù)留意這些問題。新的攻擊和漏洞總是在被發(fā)現(xiàn)。理想情況下,你可以集成安全檢查到現(xiàn)有的構建、測試和部署過程。

標簽: JavaEE

相關閱讀

主站蜘蛛池模板: 亚洲国产另类久久精品 | 特级黄色毛片视频片子 | 乱人伦中文视频在线观看 | 久久国产精品偷任你爽任你 | 男人用嘴舔女人下身免费视频 | 亚洲日日精AV无码区A片 | 免费一级做a爰片性视频 | 青草青青在线 | 最近的2019中文字幕免费 | 欧美性在线观看 | 久久精品国产日本波多麻结衣 | 国产三级A三级三级 | 久色视频在线观看 | av在线免费视屏 | 久久综合伊人77777 | 日本黄色网站在线观看 | 污视频在线观看地址 | 国产毛片久久久久 | 亚洲色噜噜噜噜噜噜国产 | 91久久国产精品视频 | 国产高清不卡免费视频 | ccyy草草影院 | 亚洲热久久 | 高清久久| 国产精品视频啪啪 | 漂亮人妻洗澡被公强啪啪 | 91久久国语露脸精品国产高跟 | 亚洲不卡| 久久精品人成免费 | 九九99久久精品在免费线bt | 欧美一区精品 | 无码少妇一区二区三区浪潮AV | 亚洲第一狼人伊人AV | 国产91一区| 久久国产高潮流白浆免费观看 | 国产视频日本 | 在线观看免费亚洲 | 91在线视频免费播放 | 男人把大JI巴放进女人免费视频 | 国产精品成人嫩草影院 | 一级视频在线观看 |