使用JS檢測,你的Web系統(tǒng)真的安全嗎?

相關(guān)學習推薦:javascript

忠縣網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)于2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

你的Web系統(tǒng)真的安全嗎?

千里之堤,潰于蟻穴。

在Web系統(tǒng)中,一個小小的漏洞,往往能引發(fā)極其嚴重的后果。因此,Web安全是每個系統(tǒng)在設(shè)計、開發(fā)、運維時必須要重點考慮的問題。

現(xiàn)如今很多Web系統(tǒng)所采取的防御措施是偏向于基礎(chǔ)和簡單的,往往只針對常見的安全漏洞做了防御,比如:

CsrfXSSSql注入

等等。這些基礎(chǔ)的防御措施是必須要做的,且實施的成本不高,但它們只是系統(tǒng)安全防御中的基礎(chǔ)部分。很多開發(fā)人員在意識中認為做好這些就足夠應(yīng)付大部分情況了,這種想法是非常危險的。實際上,除了這些基礎(chǔ)且標準化的漏洞,每個業(yè)務(wù)系統(tǒng)本身的業(yè)務(wù)邏輯也很有可能成為黑客攻擊的目標,一旦被抓到并攻破,那后果將是非常嚴重的。下面將列舉一些常見的業(yè)務(wù)邏輯漏洞,這些漏洞也是之前開發(fā)系統(tǒng)時踩過的坑,希望能對大家有所啟發(fā)。

會話憑證管理混亂

我們都知道HTTP本身是無狀態(tài)的,為了能讓瀏覽器和服務(wù)器互相知道身份并信任對方,大部分web系統(tǒng)都是利用“token”這種約定的憑證來實現(xiàn)的,token會在用戶登錄之后產(chǎn)生,并在用戶主動退出或者超過一段時間后失效。也就是說,請求帶上了相應(yīng)的token,那么服務(wù)端就能拿到token做相應(yīng)的校驗,校驗通過則信任該請求并執(zhí)行相關(guān)業(yè)務(wù)邏輯,如果沒帶、帶一個非法的或者過期的則認為不合法。這看上去并沒有什么問,但實際的實現(xiàn)上可能暗藏漏洞。

來看兩個例子:

1.前端開發(fā)人員小明在寫用戶點擊退出按鈕的邏輯時,只是單純的清空了cookie或者localstorage中的token值(token一般存這兩個地方),并沒有向后臺發(fā)起請求讓token在業(yè)務(wù)中過期失效。那這個token的有效性本質(zhì)上違背了用戶的意圖,此時就存在非常大的風險。當用戶自發(fā)退出后,token仍然有效,假如該token被他人通過某種方式獲取并記錄下來,那他可以完美的回放用戶執(zhí)行過的操作,比如更改用戶信息,下單等。

2.在上面的例子中,我們有提到token是要設(shè)置過期的,合理的過期時間能有效降低風險。但后臺開發(fā)小哥也許在設(shè)置token過期的配置中,眼花加手抖,多打一位數(shù),或者把單位理解錯,在S級單位上用了MS級的數(shù)值,那過期時間就會被設(shè)定的很長。對于登錄之后就不喜歡主動退出或者長期掛著頁面的用戶就非常的危險。token在用戶長期不使用的情況下依然有效,如果被他人拿到token,也能干很多的壞事。

校驗失效

文件上傳應(yīng)該是Web應(yīng)用上比較常用的功能,比如上傳頭像,上傳文件到網(wǎng)盤等等。惡意用戶可能會在上傳的時候,上傳木馬、病毒、惡意腳本等文件,這類文件在服務(wù)器上被執(zhí)行會帶來比較嚴重的后果。這種攻擊方式成本較低,比較容易被攻擊者利用。允許上傳的文件類型越多,受攻擊的可能性就越大。當惡意程序被成功上傳后,可能被用戶下載,在用戶電腦上執(zhí)行后使之中毒。也可能在服務(wù)器上就執(zhí)行惡意程序,造成服務(wù)器被控制,進而服務(wù)器癱瘓,數(shù)據(jù)丟失。

正常情況下,程序都會對文件類型進行判斷,只允許我們認為合法的文件上傳到服務(wù)器。但是,這個判斷在一些web程序中,只在前端做了,在后端沒做。這就給攻擊者帶來了機會,攻擊者可以輕松的串改請求,從而實現(xiàn)非法文件的上傳。

正確的做法應(yīng)該是后端進行文件擴展名判斷、MIME檢測以及限制上傳文件大小等限制來防御。另外,可以將文件保存在一個與業(yè)務(wù)隔離的服務(wù)器來防止惡意文件攻擊業(yè)務(wù)服務(wù)器導(dǎo)致服務(wù)不可用。

數(shù)據(jù)枚舉

在登錄系統(tǒng),大部分系統(tǒng)會在用戶登錄的時候判斷用戶是否存在,然后給出提示“該手機號未注冊”。如果這個邏輯是用一個單獨的接口做的,那么就會存在被暴力枚舉的風險。攻擊者可以通過該接口利用手機號碼庫進行請求枚舉,識別出哪些手機號是在系統(tǒng)中注冊過的,給下一步暴力破解密碼帶來機會。

對于這個問題,建議是將該判斷放到登錄驗證的接口中,并不返回明確的提示。你會看到做的好的網(wǎng)站上,一般會提示“該手機號未注冊或密碼錯誤”。雖然這在用戶體驗上打了折扣,但也更加的安全。

數(shù)據(jù)寫入重放

以一個論壇的發(fā)帖舉例,利用抓包工具抓取論壇發(fā)帖的請求過程,并通過該工具重放過程,會發(fā)現(xiàn)帖子列表出現(xiàn)了兩條一樣的帖子,這就是被重放攻擊了。如果加快重放頻率,不僅會在系統(tǒng)中產(chǎn)生很多的垃圾數(shù)據(jù),還會因為頻繁寫入給業(yè)務(wù)數(shù)據(jù)庫帶來巨大壓力。

對于此類有重放風險的請求,建議加上請求頻率限制。比如,可以判斷兩個請求的時間戳,設(shè)定大于某個時間值才有效。

權(quán)限漏洞

權(quán)限校驗是Web系統(tǒng)的基本功能,比如一個公司組織架構(gòu)管理系統(tǒng),里面提供了修改部門名稱、部門經(jīng)理的功能。加上權(quán)限校驗?zāi)芎芎玫乇苊馊我庥脩裟芡ㄟ^這些功能修改他本無權(quán)限的信息。此類系統(tǒng)中一定會實現(xiàn)權(quán)限校驗,但實際上真的實現(xiàn)對了嗎?

假設(shè)我們規(guī)定,系統(tǒng)中某用戶需要同時滿足具有超管權(quán)限且屬于A部門兩個條件,才能修改部門名稱。往往在實際的代碼實現(xiàn)中,開發(fā)人員只是去判斷該用戶是否為超管,而沒有判斷該用戶是否屬于該部門。在這種情況下,我們可以用B部門的超管賬號,去修改A部門的名稱,相當于越權(quán)修改了,這顯然不是我們期望的結(jié)果。即使B部門的超管用戶在界面上無法找到修改A部門部門名稱的入口,也可以通過抓取請求修改參數(shù)來實現(xiàn)。

除了越權(quán)修改,當然還能越權(quán)查看。我們肯定也不期望A部門的超管能看到B部門的部門信息,是不是?

建議大家的系統(tǒng)要對用戶訪問角色的權(quán)限進行嚴格的檢查及限制。

安全無小事,正如開頭所講,任何一個漏洞都有可能帶來毀滅性的打擊,希望大家能重視。不僅在業(yè)務(wù)設(shè)計上要重視,同時也要在代碼審查上要重視,以避免因?qū)崿F(xiàn)而帶來的低級漏洞問題。

以上只是舉了眾多安全漏洞中的一小部分,更多嚴重的Web應(yīng)用程序安全風險可以查閱 OWASP Top 10 2017 發(fā)布的Top10安全問題。www.owasp.org.cn/owasp-proje…

網(wǎng)站題目:使用JS檢測,你的Web系統(tǒng)真的安全嗎?
分享路徑:http://muchs.cn/article32/chsdsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、響應(yīng)式網(wǎng)站、網(wǎng)站營銷、網(wǎng)站改版、網(wǎng)站排名、網(wǎng)站策劃

廣告

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

商城網(wǎng)站建設(shè)