久久精品国产亚洲怮怮_奇米网777色在线精品_亚洲色中文字幕制服丝袜_久久精品人人做人人看

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁(yè) > 幫助中心>文章內(nèi)容

保護(hù)Web應(yīng)用程序不受直接對(duì)象引用(DOR

發(fā)布時(shí)間:  2012/9/15 18:45:10
聯(lián)系請(qǐng)致電:15378720700 河南億恩科技有限公司,專注IDC服務(wù)13年,華中地區(qū)最大IDC服務(wù)商。
BGP新機(jī)房?jī)?yōu)惠活動(dòng)正在進(jìn)行中。。。期待您的加入。

不妨設(shè)想一個(gè)惡意黑客能夠訪問(wèn)貴公司所有客戶的賬戶細(xì)節(jié),或者使用別人的信用卡在線購(gòu)物,而這一切只需改變URL中的幾個(gè)數(shù)字。這聽(tīng)起來(lái)似乎不太可能,但是如果你的Web應(yīng)用程序容易遭受不安全的直接對(duì)象引用的危害,惡意黑客要達(dá)到這個(gè)目的簡(jiǎn)直易如反掌。

不安全的直接對(duì)象引用舉例

這里的“對(duì)象”是指文件、目錄、數(shù)據(jù)庫(kù)記錄等內(nèi)部實(shí)施的對(duì)象,在應(yīng)用程序?qū)RL(或表單參數(shù))中的一個(gè)引用暴露給這些對(duì)象之一時(shí),就會(huì)發(fā)生安全問(wèn)題。這是因?yàn)楹诳涂梢孕薷倪@些直接對(duì)象引用,例如,黑客可以在一個(gè)URL被提交之前進(jìn)行參數(shù)修改,企圖訪問(wèn)一個(gè)不同的、未獲得授權(quán)的文件、目錄,或數(shù)據(jù)庫(kù)中的條目。如果不加強(qiáng)其它的授權(quán)檢查,這種企圖就會(huì)成功。

假設(shè)有一個(gè)Web應(yīng)用程序最終會(huì)生成下面這個(gè)URL:

http://www.yourinsecurewebapp.com/yourgetfile.cfm?filename=yoursometextfile.txt

這里有一個(gè)非常明顯的對(duì)yoursometextfile.txt文件的直接對(duì)象引用。它對(duì)黑客的誘惑在于,看到如果將這個(gè)文件名換成另外一個(gè)文件名(如“yourpasswords.txt”或“youraccounts.txt”)會(huì)發(fā)生什么。

要取得這種成功,黑客必須正確地猜測(cè)出系統(tǒng)上另外一個(gè)文件名,但一個(gè)更合理的方法,是尋找系統(tǒng)上其它位置的特定內(nèi)容,其使用的方法就是目錄遍歷攻擊(目錄遍歷是Http的一個(gè)安全漏洞,它使得攻擊者能夠訪問(wèn)受限制的目錄,并能夠在Web服務(wù)器的根目錄以外執(zhí)行命令。)。從本質(zhì)上講,這意味著訪問(wèn)一個(gè)完全不同的目錄,或者存在漏洞的應(yīng)用程序的開(kāi)發(fā)者所構(gòu)建的任何方面。為訪問(wèn)Apache Tomcat文件名和口令,黑客可能將URL的最后一部分改成:

  1. ?filename=../../tomcat/conf/tomcat-users.xml  

并非所有的直接對(duì)象引用都提供對(duì)文件的訪問(wèn)。還有另外一種可能激發(fā)黑客興趣的URL,其結(jié)尾格式如下: 

  1. ...account.cfm?customerid=4567 

 

這會(huì)使黑客進(jìn)一步問(wèn),“如果我將客戶ID(customerid)換成4568會(huì)發(fā)生什么?”

與此類似,如果一個(gè)Web應(yīng)用程序允許一個(gè)用戶根據(jù)數(shù)據(jù)庫(kù)的關(guān)鍵字引用從存儲(chǔ)在數(shù)據(jù)庫(kù)中的一個(gè)或多個(gè)信用卡中的一個(gè),那么黑客修改此數(shù)據(jù)庫(kù)的關(guān)鍵字時(shí),會(huì)發(fā)生什么呢? 

  1. <select name="choosecreditcard"> 
  2.  
  3. <option value="56"> 
  4.  
  5. XXXXXXXXXXXX6902  
  6.  
  7. </option> 
  8.  
  9. <option value="88"> 
  10.  
  11. XXXXXXXXXXXX5586  
  12.  
  13. </option> 
  14.  
  15. </select> 

在這里,用戶可以從兩個(gè)分別以6902和5586為結(jié)尾的卡中選擇一個(gè),該卡號(hào)由數(shù)據(jù)庫(kù)的關(guān)鍵字引用,而應(yīng)用程序可以訪問(wèn)此數(shù)據(jù)庫(kù)文件。因此,黑客可以將56或88改為另一個(gè)數(shù)字,如78,用來(lái)引用屬于另外一個(gè)用戶的卡號(hào)。如果沒(méi)有其它的認(rèn)證檢查來(lái)防止這種引用,攻擊將獲得成功。

避免不安全的直接對(duì)象引用

避免不安全的直接對(duì)象引用(DOR)漏洞的最佳方法是,完全不要暴露私密的對(duì)象引用,但如果非用不可,非常重要的一點(diǎn)是確保在向任何用戶提供訪問(wèn)之前對(duì)其進(jìn)行認(rèn)證和審查。全球頂級(jí)的Web應(yīng)用安全機(jī)構(gòu)OWASP建議企業(yè)建立一種引用應(yīng)用程序?qū)ο蟮臉?biāo)準(zhǔn)方法,現(xiàn)簡(jiǎn)述如下:

1、盡可能避免將私密的對(duì)象引用暴露給用戶,如重要的關(guān)鍵字或文件名。

2、運(yùn)用一種“可接受的良好方法”,詳細(xì)地驗(yàn)證任何私密的對(duì)象引用。決定準(zhǔn)許用戶訪問(wèn)哪些文件,并僅授與這些用戶訪問(wèn)這些文件的權(quán)力。

3、對(duì)所有引用的對(duì)象都要進(jìn)行驗(yàn)證。

OWASP還提供了第三個(gè)要點(diǎn)的一個(gè)例子。在此,黑客可以將電子商務(wù)網(wǎng)站的購(gòu)物車ID參數(shù)改為任何值: 

  1. int cartID = Integer.parseInt( request.getParameter( "cartID" ) );  
  2.  
  3. String query = "SELECT * FROM table WHERE cartID=" + cartID;

要想防止受到這種攻擊,就只能允許獲得授權(quán)的記錄可以顯示: 

  1. int cartID = Integer.parseInt( request.getParameter( "cartID" ) );  
  2.  
  3. User user = (User)request.getSession().getAttribute( "user" );  
  4.  
  5. String query = "SELECT * FROM table WHERE  
  6.  
  7. cartID=" + cartID + "AND userID=" + user.getID(); 

直接對(duì)象引用的另外一種選擇是每個(gè)用戶或會(huì)話都使用非直接的對(duì)象引用。

在前面那個(gè)關(guān)于信用卡的例子中,用戶需要從兩個(gè)卡中選擇一個(gè)信用卡,這會(huì)暴露對(duì)信用卡數(shù)據(jù)庫(kù)的直接引用。一個(gè)更好的方法是將這兩個(gè)信用卡的記錄存儲(chǔ)到一個(gè)針對(duì)此用戶的特定陣列中。關(guān)于信用卡的選擇,其代碼類似于下面的內(nèi)容: 

  1. <select name=" choosecreditcard"> 
  2.  
  3. <option value="1"> 
  4.  
  5. XXXXXXXXXXXX6902  
  6.  
  7. </option> 
  8.  
  9. <option value="2"> 
  10.  
  11. XXXXXXXXXXXX5586  
  12.  
  13. </option> 
  14.  
  15. </select> 

 

在這種方法中,僅有對(duì)此用戶陣列的一個(gè)直接引用,它僅包含此用戶的數(shù)據(jù)。將選項(xiàng)的值改為大于2的任何值不會(huì)導(dǎo)致其他用戶的信用卡細(xì)節(jié)被利用。然后,應(yīng)用程序?qū)延脩舻奶囟ǖ姆侵苯訉?duì)象引用(選項(xiàng)值為1或2)映射回底層的數(shù)據(jù)庫(kù)關(guān)鍵字(前面例子中的56和88)

對(duì)不安全的直接對(duì)象引用的測(cè)試

不幸的是,漏洞掃描器在發(fā)現(xiàn)不安全的直接對(duì)象引用漏洞方面并不是很高效,所以最佳的選擇是:

1、仔細(xì)檢查代碼,確認(rèn)是否有重要的參數(shù)易于遭到利用和操縱。

2、經(jīng)常實(shí)施專業(yè)的滲透測(cè)試。


本文出自:億恩科技【prubsntakaful.com】

服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問(wèn):河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      0
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線