中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用JS檢測Web系統是否安全

發布時間:2020-09-21 09:50:50 來源:億速云 閱讀:207 作者:小新 欄目:web開發

這篇文章主要介紹使用JS檢測Web系統是否安全,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!


你的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部門的部門信息,是不是?

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

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

以上是使用JS檢測Web系統是否安全的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沾化县| 喀喇沁旗| 普定县| 广灵县| 天镇县| 鹤壁市| 广东省| 沁源县| 潢川县| 讷河市| 隆林| 于田县| 绵阳市| 灵武市| 克东县| 德江县| 永仁县| 西吉县| 广西| 呼和浩特市| 瑞金市| 龙岩市| 万宁市| 惠水县| 平远县| 新野县| 湖州市| 公主岭市| 苗栗市| 安西县| 汕尾市| 南陵县| 宁晋县| 长宁县| 永新县| 五峰| 盐边县| 新昌县| 昌宁县| 隆尧县| 益阳市|