站長資訊網
        最全最豐富的資訊網站

        使用JS檢測,你的Web系統真的安全嗎?

        使用JS檢測,你的Web系統真的安全嗎?

        相關學習推薦:javascript

        你的Web系統真的安全嗎?

        千里之堤,潰于蟻穴。

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

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

        • Csrf
        • XSS
        • Sql注入

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

        會話憑證管理混亂

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

        來看兩個例子:

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

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

        校驗失效

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

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

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

        數據枚舉

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

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

        數據寫入重放

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

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

        權限漏洞

        權限校驗是Web系統的基本功能,比如一個公司組織架構管理系統,里面提供了修改部門名稱、部門經理的功能。加上權限校驗能很好地避免任意用戶能通過這些功能修改他本無權限的信息。此類系統中一定會實現權限校驗,但實際上真的實現對了嗎?

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

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

        建議大家的系統要對用戶訪問角色的權限進行嚴格的檢查及限制。

        安全無小事,正如開頭所講,任何一個漏洞都有可能帶來毀滅性的打擊,希望大家能重視。不僅在業務設計上要重視,同時也要在代碼審查上要重視,以避免因實現而帶來的低級漏洞問題。

        以上只是舉了眾多安全漏洞中的一小部分,

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 中文字幕日韩精品在线| 在线成人精品国产区免费| 亚洲国产精品一区二区三区久久| 国产精品久久国产精品99盘| 在线成人精品国产区免费| 国产玖玖玖九九精品视频| 国产成人久久精品激情| 中文字幕在线精品视频入口一区| 国产香蕉国产精品偷在线| 国产精品久久久久久影院| 久久精品人人做人人妻人人玩| 欧美日韩精品一区二区视频 | 91久久精品国产成人久久| 国产精品露脸国语对白| 久久久精品人妻一区二区三区蜜桃 | 久草视频在线这里精品| 奇米精品视频一区二区三区| 亚洲国产91精品无码专区| 精品久久久久久国产免费了| 国产韩国精品一区二区三区| 久久99精品国产99久久6男男| 国产成人精品优优av| 国产精品精品自在线拍| 激情亚洲一区国产精品| 精品无码人妻夜人多侵犯18 | 久久亚洲私人国产精品vA| 亚洲中文久久精品无码ww16| 久久九九久精品国产| 精品99久久aaa一级毛片| 精品熟女少妇aⅴ免费久久 | 99久久精品免费看国产| 亚洲第一精品在线视频| 免费91麻豆精品国产自产在线观看| 国产精品久久久久久久久鸭| 国产精品爽爽va在线观看网站| 2020国产精品永久在线| 99在线精品视频| 日韩欧美精品不卡| 国产成人无码精品一区在线观看| 国产精品自产拍在线18禁| 精品国产综合区久久久久久|