基于互聯(lián)網(wǎng)網(wǎng)站的安全開(kāi)發(fā)規(guī)范_第1頁(yè)
基于互聯(lián)網(wǎng)網(wǎng)站的安全開(kāi)發(fā)規(guī)范_第2頁(yè)
基于互聯(lián)網(wǎng)網(wǎng)站的安全開(kāi)發(fā)規(guī)范_第3頁(yè)
基于互聯(lián)網(wǎng)網(wǎng)站的安全開(kāi)發(fā)規(guī)范_第4頁(yè)
基于互聯(lián)網(wǎng)網(wǎng)站的安全開(kāi)發(fā)規(guī)范_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于互聯(lián)網(wǎng)網(wǎng)站的平安開(kāi)發(fā)標(biāo)準(zhǔn)主要內(nèi)容1前言71.1目的71.2主要參考文檔72常見(jiàn)WEB平安威脅介紹72.1跨站腳本漏洞〔XSS〕9漏洞說(shuō)明9漏洞危害10處理說(shuō)明10例如112.2注入漏洞12漏洞說(shuō)明12漏洞危害12處理說(shuō)明12例如122.3消息頭注入13漏洞說(shuō)明13漏洞危害13處理說(shuō)明13例如132.4重定向漏洞14漏洞說(shuō)明14漏洞危害15處理說(shuō)明15例如152.5請(qǐng)求偽造(OSRF/CSRF)15漏洞說(shuō)明15漏洞危害16處理說(shuō)明16例如172.6文件上傳漏洞17漏洞說(shuō)明17漏洞危害17處理說(shuō)明17例如182.7不平安的直接對(duì)象引用18漏洞說(shuō)明18漏洞危害18處理說(shuō)明18例如182.8信息泄漏及不正確的錯(cuò)誤操作19漏洞說(shuō)明19漏洞危害19處理說(shuō)明19例如192.9失效證證及會(huì)話管理20漏洞說(shuō)明20漏洞危害20處理說(shuō)明20例如212.10不平安的信息存儲(chǔ)及通信21漏洞說(shuō)明21漏洞危害21處理說(shuō)明21例如212.11限制URL訪問(wèn)失效22漏洞說(shuō)明22漏洞危害22處理說(shuō)明22例如222.12特殊字符的HTML轉(zhuǎn)換22漏洞說(shuō)明22漏洞危害22處理說(shuō)明23例如232.13緩沖區(qū)溢出23漏洞說(shuō)明23漏洞危害23處理說(shuō)明23例如233平安開(kāi)發(fā)標(biāo)準(zhǔn)233.1用戶登錄處理243.2會(huì)話平安243.3用戶輸入檢查及過(guò)濾253.4界面輸出273.5頁(yè)面重定向273.6錯(cuò)誤信息處理273.7對(duì)象訪問(wèn)權(quán)限283.8上傳內(nèi)容檢查283.9敏感信息處理283.10密碼儲(chǔ)存及使用283.11數(shù)據(jù)庫(kù)執(zhí)行腳本293.12系統(tǒng)調(diào)用293.13WEB效勞器配置29前言目的本文檔通過(guò)介紹目前Web應(yīng)用中的常見(jiàn)漏洞及危害,并收集相關(guān)的漏洞防范手段,旨在讓部門開(kāi)發(fā)人員提高WEB應(yīng)用平安意識(shí),并通過(guò)平安標(biāo)準(zhǔn),明確開(kāi)發(fā)人員編碼的根本平安要求,提高WEB應(yīng)用系統(tǒng)的平安性。另外,現(xiàn)在的網(wǎng)絡(luò)攻擊技術(shù)新、變化快,本標(biāo)準(zhǔn)需要部門全體人員不斷的補(bǔ)充、完善。同時(shí),平安開(kāi)發(fā)標(biāo)準(zhǔn)中涉及的要求,也作為測(cè)試的一個(gè)內(nèi)容及依據(jù)。主要參考文檔《黑客攻防技術(shù)寶典—web實(shí)戰(zhàn)篇》常見(jiàn)WEB平安威脅介紹常見(jiàn)的對(duì)于WEB應(yīng)用的威脅有以下幾種:Web應(yīng)用平安威脅種類威脅實(shí)施途徑導(dǎo)致結(jié)果CodeScanning(Server/Client)[源代碼掃描〔效勞端/客戶端〕]Browsingsourcecode[瀏覽源代碼]LearnVulnerabilities[收集信息,了解目標(biāo)弱點(diǎn)]CookiePoisoning[Cookie中毒]Changingcookiecontent[改變cookie內(nèi)容]UserImpersonation[扮演成為其他用戶身份]HiddenManipulation[隱藏域值篡改]ChanginghiddenHTMLfieldsvalue[改變HTML隱藏域值]eShoplifting[電子商品偷竊]ForcefulSiteBrowsing[強(qiáng)行瀏覽]UseURLaddressline[使用URL地址行]Accesssensitivedata[訪問(wèn)敏感數(shù)據(jù)]ThirdPartyMisconfigurations[第三方誤配置]Defaultorimpropersoftwareconfiguration[缺省或者不正確的軟件配置]AccessOSordata[訪問(wèn)OS或者數(shù)據(jù)]Identified(Known)Vulnerabilities[漏洞]Publishedvendorbugs[已公布的廠商軟件漏洞]AccessOS,Crashserver/app/DB,accesssensitivedata[訪問(wèn)OS或者敏感數(shù)據(jù),甚至搗毀效勞器/應(yīng)用程序/數(shù)據(jù)庫(kù)]BufferOverflow[緩沖區(qū)溢出]Overflowfieldinput[溢出輸入域]Accesssensitivedata,Orcrashsite/application[訪問(wèn)敏感數(shù)據(jù)或者搗毀站點(diǎn)/應(yīng)用程序]DebugOptions&Backdoors[調(diào)試選項(xiàng)&后門程序]Changecodesetting[改變通用代碼設(shè)置]Accesscode/applicationasDeveloperoradmin[以開(kāi)發(fā)者或者管理員身份訪問(wèn)代碼/應(yīng)用程序]ParameterTampering

Server/Client[參數(shù)篡改〔效勞端/客戶端〕]Removaloralterationofexpectedparameterfields[更改處理程序所期望得到的參數(shù)域值]AccessOSorsensitivedata[訪問(wèn)OS或者敏感數(shù)據(jù)]StealthCommanding[隱蔽指令執(zhí)行]UseMetacode[使用命令?yuàn)A帶/附加執(zhí)行模式]AccessOsorcontrolApplicationatOSlevel[訪問(wèn)OS或者在OS級(jí)別控制應(yīng)用程序]CrossSiteScripting[跨站腳本]UseURLMetacodetoinsertTrojancode[利用URL夾帶/附加執(zhí)行腳本模式嵌入特羅伊代碼]Server-sideexploitation,Accesssensitivedata[訪問(wèn)效勞端敏感數(shù)據(jù)或者威脅客戶本地平安]ApplicationDoS[應(yīng)用層拒絕效勞]Invaliddatainput[不可法數(shù)據(jù)輸入]Crashserver/application[搗毀效勞器/應(yīng)用程序]跨站腳本漏洞〔XSS〕漏洞說(shuō)明XSS又叫CSS

(CrossSiteScript),跨站腳本攻擊,指當(dāng)應(yīng)用程序提取用戶提供的數(shù)據(jù)并發(fā)送到Web瀏覽器,數(shù)據(jù)內(nèi)容沒(méi)有先經(jīng)過(guò)驗(yàn)證或編碼時(shí)〔如:在require的輸入?yún)?shù)中增加javascript腳本、HTML代碼〕,當(dāng)用戶瀏覽該頁(yè)之時(shí),嵌入其中Web里面的html代碼會(huì)被執(zhí)行,從而到達(dá)惡意用戶的特殊目的。XSS允許攻擊者在受害者的瀏覽器上執(zhí)行腳本,腳本可能會(huì)劫持用戶會(huì)話、破壞Web站點(diǎn)或引入蠕蟲(chóng)等。XSS屬于被動(dòng)式的攻擊,因?yàn)槠浔粍?dòng)且不好利用,所以許多人常呼略其危害性??缯灸_本漏洞的種類、方式也有多種如反射型、保存型、鏈接型等,跨站腳本也是目前最普遍的Web漏洞。漏洞危害雖然此漏洞不會(huì)直接影響WEB網(wǎng)站,但攻擊者通常會(huì)在有漏洞的程序中插入JavaScript、VBScript、ActiveX或Flash以欺騙用戶可通過(guò)惡意欺騙/釣魚(yú)攻擊模式誘導(dǎo)正常用戶訪問(wèn)惡意URL實(shí)現(xiàn)盜取/污染cookie、Xss蠕蟲(chóng)/掛償償馬、盜取用戶帳戶、修改用戶設(shè)置、做虛假?gòu)V告等,攻擊步驟:HTML注入,劫持用戶的瀏覽器,如:注入一個(gè)JavaScript彈出式的警告框:a_lert(1);做壞事:如果您覺(jué)得警告框還不夠刺激,當(dāng)受害者點(diǎn)擊了一個(gè)被注入了HTML代碼的頁(yè)面鏈接時(shí)攻擊者能作的各種的惡意事情:如獲取用戶Cookie/Session等敏感信息、篡改用戶資料;處理說(shuō)明用戶可控制的數(shù)據(jù)未經(jīng)適當(dāng)確認(rèn)與凈化就被復(fù)制到應(yīng)用程序響應(yīng)中,這是造成漏洞的根本原因,因此需要對(duì)用戶輸入、輸出的請(qǐng)求數(shù)據(jù)進(jìn)行過(guò)濾處理:對(duì)動(dòng)態(tài)生成的頁(yè)面的字符進(jìn)行編碼;驗(yàn)證所有輸入數(shù)據(jù),有效檢測(cè)攻擊,某個(gè)數(shù)據(jù)被接受為可被顯示或存儲(chǔ)之前,使用標(biāo)準(zhǔn)輸入驗(yàn)證機(jī)制,驗(yàn)證所有輸入數(shù)據(jù)的長(zhǎng)度、類型、語(yǔ)法、敏感字符(%<>[]{};&+-"'())并進(jìn)行相應(yīng)的轉(zhuǎn)義等。如:在request輸入?yún)?shù)取出時(shí)通過(guò)過(guò)濾器或者各頁(yè)面先判斷參數(shù)中是否含有〞<script〞開(kāi)頭的數(shù)據(jù),如果有,直接過(guò)濾掉或轉(zhuǎn)到錯(cuò)誤頁(yè)面;但僅僅查找或替換一些字符(如"<"">"或類似"script"的關(guān)鍵字),很容易被XSS變種攻擊繞過(guò)驗(yàn)證機(jī)制。往往我們只在客戶端檢驗(yàn)數(shù)據(jù)類型和有效性,但是非法用戶可以通過(guò)工具以post或get傳不符合標(biāo)準(zhǔn)參數(shù)給我們指定的接受數(shù)據(jù)頁(yè)面或效勞,可能導(dǎo)致非法用戶把錯(cuò)誤和無(wú)效的信息和數(shù)據(jù)寫入我們的數(shù)據(jù)庫(kù),因此在客戶端校驗(yàn)的根底上還需要進(jìn)行效勞器端的數(shù)據(jù)校驗(yàn)。對(duì)上傳文件名或上傳文件格式進(jìn)行嚴(yán)格驗(yàn)證、限制對(duì)所有輸出數(shù)據(jù)進(jìn)行適當(dāng)?shù)木幋a,以防止任何已成功注入的腳本在瀏覽器端運(yùn)行。例如例1:POST:msg=%25E5%259B%25BE%25E5%25BD%25A2%25E9%25AA%258C%25E8%25AF%2581%25E7%25A0%2581%25E8%25BE%2593%25E5%2585%25A5%25E9%2594%2599%25E8%25AF%25AF.</textarea><script>alert(55219)</script>例2:某論壇對(duì)上傳文件名沒(méi)有做嚴(yán)格的限制,可以用作為文件名上傳文件。這樣,黑客可以用腳本的形式上傳文件,其它用戶一旦瀏覽貼子,就會(huì)執(zhí)行其中的腳本文件。比方當(dāng)黑客用以下腳本作為文件名上傳到論壇:當(dāng)用戶瀏覽貼子時(shí),用戶瀏覽器將自動(dòng)執(zhí)行://xxx上的xss.js腳本。xss.js腳本可能是木馬或病毒文件,對(duì)用戶電腦中數(shù)據(jù)進(jìn)行竊取或破壞。注入漏洞漏洞說(shuō)明注入漏洞,特別是SQL注入,就是通過(guò)將SQL命令插入到Web表單提交或輸入域名或頁(yè)面請(qǐng)求的查詢字符串,最終達(dá)攻擊者的惡意數(shù)據(jù)欺騙翻譯器執(zhí)行非用戶本意的命令或改變數(shù)據(jù)。致SQL注入攻擊的漏洞并非系統(tǒng)造成的,主要是程序員在編程中忽略了平安因素,它的原理并不復(fù)雜,如:后臺(tái)數(shù)據(jù)庫(kù)允許動(dòng)態(tài)SQL語(yǔ)句的執(zhí)行,前臺(tái)應(yīng)用程序沒(méi)有對(duì)用戶輸入的數(shù)據(jù)或者頁(yè)面提交的信息(如POST,GET)進(jìn)行必要的平安檢查,就會(huì)造成SQL的注入威脅。漏洞危害非法查詢其它數(shù)據(jù)庫(kù)資源,獲得數(shù)據(jù)庫(kù)一些相關(guān)信息。處理說(shuō)明盡量使用預(yù)編譯〔prepareStatement〕來(lái)執(zhí)行數(shù)據(jù)庫(kù)、設(shè)置參數(shù)值,并且SQL語(yǔ)句中不出現(xiàn)參數(shù)。例如如查詢頁(yè)面根據(jù)而后臺(tái)查詢語(yǔ)句是select*from表名where字段=XXXX盡量使用select*from表名where字段=?或:param_name來(lái)預(yù)編譯;否那么非法用戶可以輸入‘’or1=1來(lái)實(shí)現(xiàn)注入獲取信息。消息頭注入漏洞說(shuō)明包括:注入cookie、傳送其它攻擊、響應(yīng)分割,如果用戶控制的數(shù)據(jù)以不平安的方式插入到應(yīng)用程序返回的消息頭中,就會(huì)出現(xiàn)消息頭注入漏洞。如果攻擊者能夠在他控制的消息頭中注入換行符〔輸入?yún)?shù)中增加%0d%0a〕,他就能在響應(yīng)中插入其他消息頭,并在響應(yīng)主體中寫入任意內(nèi)容。漏洞危害可能會(huì)通過(guò)Web高速緩存投毒損壞站點(diǎn)內(nèi)容,可能會(huì)竊取或操縱客戶會(huì)話和cookie,它們可能用于模仿合法用戶,從而使黑客能夠以該用戶身份查看或變更用戶記錄以及執(zhí)行事務(wù)。處理說(shuō)明1)在require如果是get方式傳送參數(shù)的,判斷getQueryString()返回?cái)?shù)據(jù)中是否含有%0d或%0a;如果有,直接過(guò)濾掉或轉(zhuǎn)到錯(cuò)誤頁(yè)面2)在require如果是post方式傳送參數(shù)的,在獲得數(shù)據(jù)后如果要根據(jù)require的參數(shù)重組一個(gè)url進(jìn)行跳轉(zhuǎn)個(gè)面時(shí)先要將字符串用URLEncoder.encode()進(jìn)行編碼。例如這種漏洞最常見(jiàn)于Location與Set-Cookie消息頭中,但也會(huì)出現(xiàn)在其他消息頭中。應(yīng)用程序提取用戶提交的輸入,并將它插入到響應(yīng)碼為3xx的Location消息頭中。同樣,一些應(yīng)用程序提取用戶提交的輸入,把它插入一個(gè)cookie值中。在上述任何一種情況下,攻擊者都可以使用回車符〔0x0d〕或換行符〔0x0a〕構(gòu)造一個(gè)專門設(shè)計(jì)的請(qǐng)求,在他們控制的消息頭中注入一個(gè)換行符,從而在下面的行中注入其他數(shù)據(jù)。例:URL:參數(shù):staff_id,verify_code,password_code測(cè)試值:Foobar%3f%0d%0aAppScanHeader:%20AppScanValue%2f1%2e2%2d3%0d%0aSecondAppScanHeader:%20whatever以下更改已應(yīng)用到原始請(qǐng)求:重定向漏洞漏洞說(shuō)明應(yīng)用程序提取用戶可控制的輸入,并使用這個(gè)數(shù)據(jù)執(zhí)行一個(gè)重定向,指示用戶的瀏覽器訪問(wèn)一個(gè)不同于用戶要求的URL,那么就會(huì)造成重定向漏洞。漏洞危害攻擊者主要利用重定向漏洞實(shí)施釣魚(yú)攻擊,誘使受害者訪問(wèn)一個(gè)欺騙性Web站點(diǎn)并輸入敏感信息。處理說(shuō)明絕不將用戶提交的數(shù)據(jù)合并到重定向目標(biāo)中是防止重定向漏洞的最有效方法;從應(yīng)用程序中刪除重定向頁(yè)面,用直接指向相關(guān)目標(biāo)URL的鏈接替代指向重定向頁(yè)面的鏈接;建立一個(gè)包含所有有效重定向URL的列表。不以參數(shù)的形式向重定向頁(yè)面?zhèn)魉湍繕?biāo)URL,相反,傳送這個(gè)列表的一個(gè)索引。重定向頁(yè)面應(yīng)在它的列表中查詢這個(gè)索引,并返回一個(gè)指向相關(guān)URL的重定向。應(yīng)用程序應(yīng)在所有重定向中使用相對(duì)URL,重定向頁(yè)面應(yīng)嚴(yán)格確認(rèn)它收到的URL是一個(gè)相對(duì)URL。它應(yīng)當(dāng)確認(rèn):用戶提交的URL或者以單獨(dú)一個(gè)斜線字符、后接一個(gè)字母開(kāi)頭,或者以一個(gè)字母開(kāi)頭,并且在第一個(gè)斜線前沒(méi)有冒號(hào)。應(yīng)拒絕而不是凈化任何其他輸入。例如一個(gè)常見(jiàn)的例如是,應(yīng)用程序強(qiáng)制會(huì)話已經(jīng)終止的用戶返回登錄頁(yè)面,然后在用戶重新成功通過(guò)驗(yàn)證后將他們重定向到最初的URL。如果遇到這種行為,就說(shuō)明應(yīng)用程序可能易于受到重定向攻擊,因此,應(yīng)當(dāng)對(duì)這種行為進(jìn)行深入分析,以確定它是否可被攻擊者利用。請(qǐng)求偽造(OSRF/CSRF)漏洞說(shuō)明這種類型的攻擊[也稱為會(huì)話疊置]與會(huì)話劫持攻擊密切相關(guān),在攻擊過(guò)程中,攻擊者截獲一名用戶的會(huì)話令牌,因而能夠"作為"該用戶使用應(yīng)用程序。但是,通過(guò)請(qǐng)求偽造,攻擊者根本不需要知道受害者的會(huì)話令牌而是利用Web瀏覽器的正常行為劫持一名用戶的令牌,通過(guò)它提出用戶并不想提出的請(qǐng)求。請(qǐng)求偽造漏洞分為兩種類型:本站點(diǎn)請(qǐng)求偽造與跨站點(diǎn)請(qǐng)求偽造。本站點(diǎn)請(qǐng)求偽造〔on-siterequestforgery,OSRF〕是一種利用保存型XSS漏洞的常見(jiàn)攻擊有效載荷。例如,在MySpace蠕蟲(chóng)中,Samy在自己的用戶資料中插入了一段腳本,致使任何查看它的用戶在不知情的情況下執(zhí)行各種操作。另外,即使在XSS漏洞并不存在的地方,保存型OSRF漏洞仍有可能存在,這一點(diǎn)常被人們無(wú)視。CSRF是CrossSiteRequestForgery的縮寫〔也縮寫為XSRF〕,即跨站請(qǐng)求偽造,目前流行的CSRF攻擊主要是由攻擊者在網(wǎng)頁(yè)中植入惡意代碼或連接,當(dāng)受害人的瀏覽器執(zhí)行惡意代碼或者受害人點(diǎn)擊連接后,攻擊者就可以訪問(wèn)那些被害人身份驗(yàn)證后的網(wǎng)絡(luò)應(yīng)用。如果被害人采用多窗口瀏覽器,攻擊者就可以以被害人身份控制瀏覽器中任何一個(gè)窗口中的Web應(yīng)用。漏洞危害會(huì)話劫持,攻擊者強(qiáng)制受害者的瀏覽器執(zhí)行一個(gè)對(duì)攻擊者有利的惡意行為。一般網(wǎng)站是通過(guò)cookie來(lái)識(shí)別用戶的,當(dāng)用戶成功進(jìn)行身份驗(yàn)證之后瀏覽器就會(huì)得到一個(gè)標(biāo)識(shí)其身份的cookie,只要不關(guān)閉瀏覽器或者退出登錄,以后訪問(wèn)這個(gè)網(wǎng)站會(huì)帶上這個(gè)cookie。如果這期間瀏覽器被人控制著請(qǐng)求了這個(gè)網(wǎng)站的url,可能就會(huì)執(zhí)行一些用戶不想做的功能〔比方修改個(gè)人資料〕。處理說(shuō)明不要完全依賴于cookie傳送會(huì)話令牌,就可以防止XSRF攻擊,如:電子銀行這些最為注意平安的應(yīng)用程序常常使用HTML表單中的隱藏字段傳送會(huì)話令牌。當(dāng)每次提交請(qǐng)求時(shí),應(yīng)用程序除確認(rèn)會(huì)話cookie外,還核實(shí)表單是否傳送了正確的令牌;通過(guò)要求用戶完成幾個(gè)步驟、以執(zhí)行相關(guān)的敏感操作阻止XSRF攻擊的防御措施,應(yīng)用程序必須在多步驟處理過(guò)程中使用某種令牌且保證這個(gè)令牌的平安。如:在第一個(gè)階段,應(yīng)用程序在一個(gè)隱藏表單字段中放入一個(gè)令牌;在第二個(gè)階段,它確認(rèn)這個(gè)令牌是否被提交。由于XSRF攻擊是單向性的,因此實(shí)施攻擊的Web站點(diǎn)無(wú)法從第一個(gè)階段獲得令牌,然后在第二個(gè)階段提交。例如如:比方要攻擊一個(gè)存在問(wèn)題的blog,那就先去目標(biāo)blog留言,留下一個(gè)網(wǎng)址,誘其主人點(diǎn)擊過(guò)來(lái),然后構(gòu)造個(gè)HTML表單提交些數(shù)據(jù)過(guò)去。這時(shí)對(duì)于多窗口瀏覽器〔firefox、遨游、MyIE……〕便捷的同時(shí)也帶來(lái)了一些問(wèn)題,因?yàn)槎啻翱跒g覽器新開(kāi)的窗口是具有當(dāng)前所有會(huì)話的。即我用IE登陸了我的Blog,然后我想看新聞了,又運(yùn)行一個(gè)IE進(jìn)程,這個(gè)時(shí)候兩個(gè)IE窗口的會(huì)話是彼此獨(dú)立的,從看新聞的IE發(fā)送請(qǐng)求到Blog不會(huì)有我登錄的cookie;但是多窗口瀏覽器永遠(yuǎn)都只有一個(gè)進(jìn)程,各窗口的會(huì)話是通用的,即看新聞的窗口發(fā)請(qǐng)求到Blog是會(huì)帶上我在blog登錄的cookie。想一想,當(dāng)我們用鼠標(biāo)在Blog/BBS/WebMail點(diǎn)擊別人留下的鏈接的時(shí)候,說(shuō)不定一場(chǎng)精心準(zhǔn)備的CSRF攻擊正等著我們。文件上傳漏洞漏洞說(shuō)明利用當(dāng)前WEB系統(tǒng)已有的上傳功能,比方文件上傳、圖像上傳等的漏洞來(lái)上傳任意文件或者webshell。漏洞危害直接上傳webshell到效勞器,甚至獲取效勞器的root權(quán)限。處理說(shuō)明后綴檢查不嚴(yán)引起的上傳任意文件,主要為jsp和war后綴文件,需要進(jìn)行限制;采用白名單嚴(yán)格限制上傳類型。例如無(wú)不平安的直接對(duì)象引用漏洞說(shuō)明當(dāng)開(kāi)發(fā)人員把一個(gè)引用暴露給內(nèi)部執(zhí)行對(duì)象時(shí),如一個(gè)文件、目錄、數(shù)據(jù)庫(kù)記錄或鍵值、URL或格式參數(shù),可能發(fā)生直接對(duì)象引用。攻擊者可以操縱這些引用訪問(wèn)其它未經(jīng)認(rèn)證的對(duì)象,即指一個(gè)已經(jīng)授權(quán)的用戶,通過(guò)更改訪問(wèn)時(shí)的一個(gè)參數(shù),從而訪問(wèn)到了原本其并沒(méi)有得到授權(quán)的對(duì)象。Web應(yīng)用往往在生成Web頁(yè)面時(shí)會(huì)用它的真實(shí)名字,且并不會(huì)對(duì)所有的目標(biāo)對(duì)象訪問(wèn)時(shí)來(lái)檢查用戶權(quán)限,所以這就造成了不平安的對(duì)象直接引用的漏洞。漏洞危害攻擊者可以操縱這些引用訪問(wèn)其它未經(jīng)認(rèn)證的對(duì)象。可能造成目錄遍歷漏洞。處理說(shuō)明控制應(yīng)用程序的訪問(wèn)權(quán)限;使用非直接的對(duì)象引用——這防止了攻擊者直接訪問(wèn)其并未授權(quán)的對(duì)象,通過(guò)一種mapping或是其他的方法讓攻擊者無(wú)法直接訪問(wèn)。檢查訪問(wèn)——對(duì)每一個(gè)來(lái)自于不信任的源的直接對(duì)象引用都必須包含訪問(wèn)控制檢查,從而確信該用戶對(duì)該對(duì)象擁有訪問(wèn)權(quán)。例如如由于網(wǎng)站沒(méi)有對(duì)URL地址欄中輸入的內(nèi)容進(jìn)行有效的限制,攻擊者可以在URL地址后參加特殊的字符,如“../〞,來(lái)對(duì)WEB站點(diǎn)中的實(shí)際對(duì)象,如文件、目錄等進(jìn)行查看,甚至可以對(duì)它們進(jìn)行修改和刪除。信息泄漏及不正確的錯(cuò)誤操作漏洞說(shuō)明WEB應(yīng)用程序可能通過(guò)各類應(yīng)用程序問(wèn)題無(wú)意中泄漏其配置、內(nèi)部動(dòng)作情況或侵害機(jī)密數(shù)據(jù)的信息。WEB應(yīng)用程序還會(huì)通過(guò)不正當(dāng)?shù)腻e(cuò)誤信息處理,將站點(diǎn)內(nèi)部組成結(jié)構(gòu)及效勞器、數(shù)據(jù)庫(kù)類型泄漏給攻擊者。如果WEB站點(diǎn)開(kāi)發(fā)人員不對(duì)這些方面進(jìn)行通用信息處理,就有可能存在這個(gè)漏洞。漏洞危害攻擊者利用這個(gè)弱點(diǎn)偷竊敏感數(shù)據(jù)或傳入更多嚴(yán)重的攻擊??赡茉斐赡夸洷闅v漏洞。處理說(shuō)明url地址參數(shù)使用get方式傳送時(shí),有時(shí)我們一般會(huì)使用一些有意義,顯而易見(jiàn)的參數(shù)值;可能導(dǎo)致非法用戶通過(guò)參數(shù)值猜測(cè)我們系統(tǒng)有效數(shù)據(jù)。盡量使用數(shù)值或者無(wú)意義的參數(shù)作為url地址使用get方式傳送參數(shù);物理路徑泄漏:防止Web效勞器的某些顯示環(huán)境變量的程序錯(cuò)誤的輸出了Web效勞器的物理路徑;防止Web效勞器處理用戶請(qǐng)求出錯(cuò)導(dǎo)致的物理信息泄漏。等等。例如如通過(guò)提交一個(gè)超長(zhǎng)的請(qǐng)求,或者是某個(gè)精心構(gòu)造的特殊請(qǐng)求,或是請(qǐng)求一個(gè)Web效勞器上不存在的文件。失效證證及會(huì)話管理漏洞說(shuō)明如果WEB站點(diǎn)沒(méi)有對(duì)用戶賬戶、會(huì)話令牌進(jìn)行嚴(yán)格的認(rèn)證及保護(hù),以及對(duì)用戶與站點(diǎn)之間的會(huì)話進(jìn)行平安連接,或者沒(méi)有妥善處理它們之間會(huì)話的生命周期,那么就有可能存在用戶被劫持和會(huì)話內(nèi)容泄漏或被利用的風(fēng)險(xiǎn)。此漏洞也是所有WEB應(yīng)用框架都存在的平安漏洞。漏洞危害攻擊者使用密碼、密鑰或認(rèn)證令牌偽裝其它用戶的身份。處理說(shuō)明建立一個(gè)無(wú)法預(yù)測(cè)的平安令牌后,就必須在這個(gè)令牌生成到廢止的整個(gè)生命周期中保障它的平安,確保不會(huì)將其泄露給除令牌用戶以外的其他任何人。會(huì)話生命周期管理:〔1〕會(huì)話創(chuàng)立的嚴(yán)格驗(yàn)證;(2)會(huì)話退出:應(yīng)總是執(zhí)行退出功能,通過(guò)它刪除效勞器上的所有會(huì)話資源并終止會(huì)話令牌;(3)會(huì)話有效性:處于非活動(dòng)狀態(tài)一段時(shí)間〔如10分鐘〕后,應(yīng)執(zhí)行會(huì)話終止;〔4〕應(yīng)防止并行登錄,每次一名用戶登錄,都應(yīng)發(fā)布一個(gè)新會(huì)話令牌,同時(shí)廢止任何屬于該用戶的現(xiàn)有會(huì)話;應(yīng)采取特殊措施保護(hù)會(huì)話管理機(jī)制的平安,防止應(yīng)用程序用戶成為各種攻擊的目標(biāo)。如:不能以明文形式傳送的令牌;絕不能在URL中傳送會(huì)話令牌,因?yàn)檫@樣做易于受到會(huì)話固定攻擊,并可能使令牌出現(xiàn)在各種日志機(jī)制中最好是對(duì)所有導(dǎo)航使用POST請(qǐng)求實(shí)現(xiàn)這一目的,并將令牌保存在HTML表單隱藏字段中。不完全依賴cookie傳送會(huì)話令牌可防御跨站點(diǎn)請(qǐng)求偽造攻擊。應(yīng)用程序不得接受它認(rèn)為不是自己發(fā)布的任意會(huì)話令牌。應(yīng)立即在瀏覽器中取消該令牌,并將用戶返回到應(yīng)用程序的起始頁(yè)面。任何時(shí)候,只要一名用戶與應(yīng)用程序的交互狀態(tài)由匿名轉(zhuǎn)變?yōu)榇_認(rèn),應(yīng)用程序就應(yīng)該發(fā)布一個(gè)新的會(huì)話令牌。這不僅適用于用戶成功登錄的情況,而且適用于匿名用戶首次提交個(gè)人或其他敏感信息時(shí)。例如略不平安的信息存儲(chǔ)及通信漏洞說(shuō)明大多數(shù)WEB應(yīng)用程序都使用加密技術(shù)來(lái)保護(hù)敏感數(shù)據(jù)的平安。但是,還有一些WEB站點(diǎn)卻使用簡(jiǎn)單的不合理的加密技術(shù)來(lái)保護(hù)敏感數(shù)據(jù),有的甚至根本沒(méi)有使用任何加密技術(shù),這些方式都有可能造成機(jī)密的數(shù)據(jù)被查看、修改、復(fù)制或刪除。另外,當(dāng)用戶與WEB站點(diǎn)進(jìn)行通信時(shí),如果不對(duì)在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包時(shí)行加密傳輸,就有可能被攻擊通過(guò)以網(wǎng)絡(luò)嗅探的方式截獲,從而引起嚴(yán)重的平安事件。現(xiàn)在一種普遍的WEB內(nèi)容加密通信方式就是使用SSL(也就是平安套接字)。漏洞危害攻擊者通過(guò)缺乏有效保護(hù)的數(shù)據(jù)來(lái)竊取身份及其它犯罪行為。處理說(shuō)明對(duì)敏感數(shù)據(jù)需要進(jìn)行保護(hù),如:加密;對(duì)關(guān)鍵的數(shù)據(jù)傳輸采用加密傳輸。例如無(wú)限制URL訪問(wèn)失效漏洞說(shuō)明通常,一個(gè)沒(méi)有授權(quán)并且沒(méi)有通過(guò)驗(yàn)證的用戶是不可能翻開(kāi)一個(gè)受保護(hù)的網(wǎng)頁(yè)的。但是,如果WEB站點(diǎn)使用了錯(cuò)誤的RRL訪問(wèn)控制規(guī)那么,那么,一個(gè)有明確動(dòng)機(jī)且技術(shù)高超的攻擊者就有可能利用這個(gè)漏洞翻開(kāi)這些網(wǎng)頁(yè),并且有可能引用其中的某些功能和查看機(jī)密數(shù)據(jù)。漏洞危害攻擊者就有可能利用這個(gè)漏洞翻開(kāi)這些網(wǎng)頁(yè),并且有可能引用其中的某些功能和查看機(jī)密數(shù)據(jù)。處理說(shuō)明正確配置WEB站點(diǎn)的訪問(wèn)控制策略,以便將所有可能的非法訪問(wèn)者在翻開(kāi)網(wǎng)頁(yè)全部拒之門外。例如無(wú)特殊字符的HTML轉(zhuǎn)換漏洞說(shuō)明數(shù)據(jù)庫(kù)讀取一些<div>標(biāo)簽或特殊字符(如單引號(hào)等)在頁(yè)面直接展示;漏洞危害使直接頁(yè)面輸出值時(shí)頁(yè)面樣式走樣。處理說(shuō)明盡量先把特殊字符做HTML字符轉(zhuǎn)換例如無(wú)緩沖區(qū)溢出漏洞說(shuō)明緩沖區(qū)溢出漏洞想必大家都很熟悉,無(wú)非是Web效勞器沒(méi)有對(duì)用戶提交的超長(zhǎng)請(qǐng)求沒(méi)有進(jìn)行適宜的處理,這種請(qǐng)求可能包括超長(zhǎng)URL,超長(zhǎng)Header域,或者是其它超長(zhǎng)的數(shù)據(jù)。漏洞危害可能造成程序崩潰或者執(zhí)行攻擊者的命令。處理說(shuō)明1、及時(shí)打上WEB軟件、操作系統(tǒng)補(bǔ)??;2、對(duì)用戶提交的數(shù)據(jù)進(jìn)行長(zhǎng)度判斷。例如無(wú)平安開(kāi)發(fā)標(biāo)準(zhǔn)結(jié)合常見(jiàn)WEB平安漏洞,對(duì)部門日常基于互聯(lián)網(wǎng)網(wǎng)站的代碼開(kāi)發(fā),提出以下標(biāo)準(zhǔn)要求。用戶登錄處理登錄程序需要對(duì)用戶輸入的用戶名及口令仔細(xì)進(jìn)行有效性校驗(yàn);對(duì)用戶提交一些登錄數(shù)據(jù)進(jìn)行合法性驗(yàn)證,過(guò)濾掉一些特殊字符,主要有%<>;&+-"'(),%主要是為了過(guò)濾%20前的一些非可見(jiàn)字符引發(fā)的問(wèn)題,如回車(%0a)、換行符(%0d)、空字符(%00),<>是為了過(guò)濾HTML和JAVASCRIPT腳本注入,%;&+-"'()主要是為了防止SQL腳本注入;要求登錄驗(yàn)證必須采用圖片驗(yàn)證碼方式;對(duì)于口令驗(yàn)證過(guò)程,建議采用以下方式:根據(jù)提交的用戶名在數(shù)據(jù)庫(kù)中查找記錄,如果沒(méi)有那么出錯(cuò)返回,如果有該用戶,轉(zhuǎn)步驟<2>;將得到的記錄中的口令局部與用戶輸入的口令進(jìn)行字符串比擬,如果一致那么允許通過(guò),否那么出錯(cuò)返回。注意:不要在一條select語(yǔ)句中同時(shí)完成對(duì)用戶/口令的驗(yàn)證,以增加潛在的危險(xiǎn)攻擊的難度。會(huì)話平安建立一個(gè)無(wú)法預(yù)測(cè)的平安令牌后,在這個(gè)令牌生成到廢止的整個(gè)生命周期中保障它的平安,確保不會(huì)將其泄露給除令牌用戶以外的其他任何人;會(huì)話生命周期管理:〔1〕會(huì)話創(chuàng)立的嚴(yán)格驗(yàn)證;(2)會(huì)話退出:應(yīng)總是執(zhí)行退出功能,通過(guò)它刪除效勞器上的所有會(huì)話資源并終止會(huì)話令牌;(3)會(huì)話有效性:處于非活動(dòng)狀態(tài)一段時(shí)間〔如10分鐘〕后,應(yīng)執(zhí)行會(huì)話終止;〔4〕應(yīng)防止并行登錄,每次一名用戶登錄,都應(yīng)發(fā)布一個(gè)新會(huì)話令牌,同時(shí)廢止任何屬于該用戶的現(xiàn)有會(huì)話;應(yīng)采取特殊措施保護(hù)會(huì)話管理機(jī)制的平安,防止應(yīng)用程序用戶成為各種攻擊的目標(biāo)。如:不能以明文形式傳送的令牌;絕不能在URL中傳送會(huì)話令牌,因?yàn)檫@樣做易于受到會(huì)話固定攻擊,并可能使令牌出現(xiàn)在各種日志機(jī)制中;最好是對(duì)所有導(dǎo)航使用POST請(qǐng)求實(shí)現(xiàn)這一目的,并將令牌保存在HTML表單隱藏字段中;不完全依賴cookie傳送會(huì)話令牌可防御跨站點(diǎn)請(qǐng)求偽造攻擊。應(yīng)用程序不得接受它認(rèn)為不是自己發(fā)布的任意會(huì)話令牌。應(yīng)立即在瀏覽器中取消該令牌,并將用戶返回到應(yīng)用程序的起始頁(yè)面。任何時(shí)候,只要一名用戶與應(yīng)用程序的交互狀態(tài)由匿名轉(zhuǎn)變?yōu)榇_認(rèn),應(yīng)用程序就應(yīng)該發(fā)布一個(gè)新的會(huì)話令牌。這不僅適用于用戶成功登錄的情況,而且適用于匿名用戶首次提交個(gè)人或其他敏感信息時(shí)。用戶輸入檢查及過(guò)濾目前網(wǎng)站平安最常見(jiàn)的問(wèn)題,就是注入和XSS攻擊,而這兩個(gè)攻擊的源頭,都來(lái)自于沒(méi)有妥善過(guò)濾由使用者傳來(lái)的數(shù)據(jù),除了輸入數(shù)據(jù)之外,包含cookie、參數(shù)都可能成為黑客利用的工具。

因此要求對(duì)用戶輸入提交的內(nèi)容進(jìn)行嚴(yán)格過(guò)濾:要求對(duì)用戶輸入內(nèi)容進(jìn)行業(yè)務(wù)內(nèi)容合法性檢查;對(duì)用戶提交的數(shù)據(jù)進(jìn)行長(zhǎng)度判斷;要求在WEB前端、WEB后端均需要進(jìn)行數(shù)據(jù)檢查??蛻糨斎氲脑紨?shù)據(jù)進(jìn)行校驗(yàn)不要完全依賴于Script。腳本是不平安的,用戶可能屏蔽腳本,因引要求在客戶端合法性檢查的根底上,還需要將用戶數(shù)據(jù)送入效勞器端,在效勞器上驗(yàn)證字符串的合法性。拒絕任何以斜線開(kāi)始的內(nèi)容;斜線意味著“相對(duì)于根〞或絕對(duì)路徑。用戶很少需要訪問(wèn)web根目錄之外的數(shù)據(jù),這樣他們使用的路徑就是相對(duì)于web根目錄,而不是絕對(duì)路徑,為平安起見(jiàn),有必要拒絕任何以斜線開(kāi)始的內(nèi)容;拒絕任何包含單個(gè)點(diǎn)〔.〕和兩個(gè)點(diǎn)〔..〕的序列的內(nèi)容在路徑中單個(gè)點(diǎn)〔.〕和兩個(gè)點(diǎn)〔..〕的序列有特殊含義。單點(diǎn)意味著“相對(duì)于當(dāng)前目錄〞,而雙點(diǎn)意味著“相對(duì)于當(dāng)前目錄的父目錄〞。有些人可以建立象../../../etc/passwd這樣的串逆向三層,然后向下進(jìn)入/etc/passwd文件,從而對(duì)系統(tǒng)平安造成極大威脅;在把用戶提交的數(shù)據(jù)傳送給系統(tǒng)之前,過(guò)濾掉如下字符:[1]|〔豎線符號(hào)〕[2]&〔&符號(hào)〕[3];〔分號(hào)〕[4]$〔美元符號(hào)〕[5]%〔百分比符號(hào)〕[6]@〔at符號(hào)〕[7]'〔單引號(hào)〕[8]"〔引號(hào)〕[9]\'〔反斜杠轉(zhuǎn)義單引號(hào)〕[10]\"〔反斜杠轉(zhuǎn)義引號(hào)〕[11]<>〔尖括號(hào)〕[12]()〔括號(hào)〕[13]+〔加號(hào)〕[14]CR〔回車符,ASCII0x0d〕[15]LF〔換行,ASCII0x0a〕[16],〔逗號(hào)〕[17]\〔反斜杠〕還有:*!#{}[]:如:HTML的輸入標(biāo)識(shí)符中去除所有輸入的尖括號(hào)'<''>';仔細(xì)檢查輸入語(yǔ)句,一般情況拒絕如下命令:rm–fmail……delete…………/etc/passwd或其它對(duì)系統(tǒng)有威脅的操作。對(duì)數(shù)值型變量,首先要判斷其內(nèi)容是不是真的數(shù)值型,如果不是,就進(jìn)行出錯(cuò)處理。界面輸出對(duì)所有輸出數(shù)據(jù)進(jìn)行適當(dāng)?shù)木幋a,以防止任何已成功注入的腳本在瀏覽器端運(yùn)行。頁(yè)面重定向盡量不將用戶提交的數(shù)據(jù)合并到重定向目標(biāo)中;從應(yīng)用程序中刪除重定向頁(yè)面,用直接指向相關(guān)目標(biāo)URL的鏈接替代指向重定向頁(yè)面的鏈接;建立一個(gè)包含所有有效重定向URL的列表。不以參數(shù)的形式向重定向頁(yè)面?zhèn)魉湍繕?biāo)URL,相反,傳送這個(gè)列表的一個(gè)索引。重定向頁(yè)面應(yīng)在它的列表中查詢這個(gè)索引,并返回一個(gè)指向相關(guān)URL的重定向。應(yīng)用程序應(yīng)在所有重定向中使用相對(duì)URL,重定向頁(yè)面應(yīng)嚴(yán)格確認(rèn)它收到的URL是一個(gè)相對(duì)URL。它應(yīng)當(dāng)確認(rèn):用戶提交的URL或者以單獨(dú)一個(gè)斜線字符、后接一個(gè)字母開(kāi)頭,或者以一個(gè)字母開(kāi)頭,并且在第一個(gè)斜線前沒(méi)有冒號(hào)。應(yīng)拒絕而不是凈化任何其他輸入。對(duì)于確需要根據(jù)用戶輸入數(shù)據(jù)進(jìn)行重組生成一個(gè)url進(jìn)行,進(jìn)行頁(yè)面重定向的,跳轉(zhuǎn)個(gè)面時(shí)先要將字符串用URLEncoder.encode()進(jìn)行編碼。錯(cuò)誤信息處理有許多程序開(kāi)發(fā)人員對(duì)于錯(cuò)誤處理不夠細(xì)心,導(dǎo)致腳本語(yǔ)法或數(shù)據(jù)庫(kù)發(fā)生錯(cuò)誤時(shí),直接讓錯(cuò)誤碼呈現(xiàn)在瀏覽器,錯(cuò)誤信息對(duì)一般的使用者沒(méi)什么意義,但往往會(huì)給黑客帶來(lái)許多參考價(jià)值。在開(kāi)發(fā)過(guò)程中,往往設(shè)定輸出一些出錯(cuò)信息,或者借助系統(tǒng)的出錯(cuò)信息對(duì)程序進(jìn)行調(diào)試。在提交測(cè)試后,要求注意替換這

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論