0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

遭遇網(wǎng)絡攻擊后,如何保證用戶登錄的安全性?

如意 ? 來源:機器之心 ? 作者:丁儀 ? 2020-11-17 15:19 ? 次閱讀

用戶登錄是系統(tǒng)中最重要的功能之一,登錄成功就能擁有系統(tǒng)的相關使用權限。所以設計一個安全的登錄流程是十分必要的。保護用戶賬號不被黑客竊取,既是在保護用戶的基本利益,更是在保護網(wǎng)站的信譽和業(yè)務發(fā)展。

流程安全性

安全的登錄流程必須使用 HTTPS 協(xié)議。HTTPS 協(xié)議具有較高的安全性,可以保證數(shù)據(jù)傳輸過程的安全。雖然有 fiddler 等代理方式可以截取數(shù)據(jù),但一般情況下沒有用戶的配合也無法截取。HTTPS 證書可以在阿里云申請,個人站點可以直接用免費版,非常方便。nginx 和 Spring Boot 的配置也非常簡單。

登錄一定要有人機驗證機制,可以防止黑客以暴力破解的方式嘗試登錄。通??梢杂脠D片驗證碼,并且圖片要加干擾線,使用不同的字體、大小寫提高識別難度。目前有打碼平臺和 AI 方式可以識別圖片驗證碼,但是成本比較高。一些大型網(wǎng)站已經(jīng)在使用新的驗證方式,比如拖動鼠標移動滑塊或者把一個傾斜的圖片扶正,攻擊的難度還是比較高的。

一定要注意防范 XSS、CSRF 攻擊。攻擊者通過在目標網(wǎng)站上注入惡意腳本,可以在其他用戶的瀏覽器上運行腳本。利用這些惡意腳本,攻擊者可獲取用戶的敏感信息。用戶提交的任何數(shù)據(jù)都要保持懷疑態(tài)度,不能完全信任,該過濾就過濾,該攔截就攔截。國內(nèi)大型網(wǎng)站,比如淘寶也存在過 CSRF 漏洞,可見大家對這種攻擊形式還比較陌生。

后臺登錄代碼要注意防范 SQL 注入攻擊。如果黑客提交 password or 1 = 1 而后臺沒做 SQL 防注入,只是查詢下數(shù)據(jù)是否存在,有可能就攻擊成功了。所以 or 1 = 1 有個響亮的名字,叫萬能密碼。恐怕大家在做大學作業(yè)的時候,都有這個漏洞吧。

登錄成功后,返回的 cookie 要設置 httponly、secure,這樣就無法通過 js 腳本獲取 cookie,可以防止跨站攻擊,增加爬蟲程序的難度。cookie 有效期根據(jù)業(yè)務需求決定,盡量短一些。曾經(jīng)我也做過爬蟲,爬網(wǎng)銀的時候就處理過很多這樣的 cookie,比普通 cookie 復雜很多。

如果使用手機短信登錄,一定要控制驗證碼的時效性,即驗證碼一次有效 5 分鐘,一分鐘內(nèi)只能發(fā)送一次。有必要時可以單點登錄,其他設備登錄后,本設備自動失效。也可以使用第三方授權登錄接口,如微信登錄等,優(yōu)化用戶登錄體驗,安全性更好。

密碼安全性

盡量提升密碼強度。一般來說,長度要 8 位以上,必須同時包含數(shù)字、小寫字母、大寫字母,建議用戶使用特殊字符。

重置密碼,最好通過郵箱發(fā)送一定時間內(nèi)有效的重置鏈接,或者手機短信驗證碼,甚至兩者相結合的方法。安全要求特別高的場景,比如股票交易軟件,有的設計了一個單獨的動態(tài)密碼 APP,通過算法比對動態(tài)密碼。密碼保護問題在今天隱私滿天飛的時代背景下,可能已經(jīng)不那么安全了。

用戶名密碼錯誤提示含糊一些。無論是用戶名還是密碼錯誤,統(tǒng)一提示“用戶名或密碼錯誤”,不要給用戶明確的提示。這樣會在一定程度上讓忘記用戶名的用戶難以登錄,可以輔助一個用戶名找回機制或允許使用郵箱、手機號進行登錄。

不要在瀏覽器中明文保存用戶名、密碼,md5 加密也不行。如果要自動登錄,可以保存 RSA 加密后的密文,通過 cookie 提交密文進行解析來自動登錄。md5 或者 md5(md5) 在今天已經(jīng)不安全了,黑客的彩虹表可能已經(jīng)覆蓋了大多數(shù)數(shù)據(jù)了。

保護好用戶

密碼落庫必須加密。CSDN當年使用明文存儲密碼導致被脫褲后完全公開了用戶密碼,給用戶和網(wǎng)站帶來了極大的風險?;诓屎绫砟軌蚝芊奖愕仄平?md5、sha1 等古老算法的密文,建議至少使用 sha256 及以后的算法,并且加密過程加鹽。鹽的長度最好也要在 64 位以上。如果條件允許,給每個用戶設計一個獨有的鹽值,將極大提升安全性。

數(shù)據(jù)庫要保留用戶的歷史密碼,修改密碼時,不能和前幾次一樣。如果黑客掌握了某個歷史密碼,也可能在用戶改回后恰好就對上了。參考 Google 賬號登錄,修改密碼和 6 個月前的一樣都是不行的。

保留用戶的登錄記錄。時間、ip 都需要。如果本次 ip 和以前的有較大的差別,可以通過郵箱、短信、站內(nèi)信等向用戶提示,建議用戶修改密碼。用戶長時間沒有登錄,后續(xù)再登錄的時候最好強制修改密碼,并且和歷史密碼不重復。

短時間內(nèi)登錄失敗,要鎖定用戶。比如失敗 5 次可以鎖定 1 小時,再次失敗鎖定 8 小時,又失敗鎖定 24 小時。鎖定后,用戶可以通過注冊郵箱或手機短信實現(xiàn)解鎖,但一天內(nèi)也要限制解鎖次數(shù)。

即使在用戶登錄后,進行重要操作的時候,也要求用戶重新輸入一次密碼。比如修改密碼、修改綁定郵箱、修改密碼保護問題、有消費行為等,可以防止用戶被 XSS 攻擊后黑客修改重要數(shù)據(jù)。

總結

本文梳理了設計登錄流程需要考慮的一些關鍵點。世界上沒有絕對安全的系統(tǒng),有價值的網(wǎng)站和應用都是黑客攻擊的重點對象。工作中務必重視安全問題,發(fā)現(xiàn)漏洞及時修復。也要考慮網(wǎng)站數(shù)據(jù)的重要程度,采取合適的防護措施。
責編AJX

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 網(wǎng)絡安全

    關注

    10

    文章

    3181

    瀏覽量

    59988
  • SQL
    SQL
    +關注

    關注

    1

    文章

    771

    瀏覽量

    44191
  • 黑客
    +關注

    關注

    3

    文章

    284

    瀏覽量

    21887
收藏 人收藏

    評論

    相關推薦

    如何保證汽車遠程信息系統(tǒng)的安全性

    程師面對并解決范圍廣闊的技術安全和可靠性問題。目前,許多設備都具有聯(lián)網(wǎng)的功能,聯(lián)網(wǎng)設備易受攻擊的特性已經(jīng)成為必須面對的挑戰(zhàn)。在開放的網(wǎng)絡環(huán)境中工作的嵌入式設備越多,安全性就越來越成為事
    發(fā)表于 08-28 12:38

    nios如何保證安全性

    在工業(yè)設計當中,fpga的安全性是很嚴重的(個人認為),燒寫在epcs上的程序,只要用邏輯分析儀就可以實現(xiàn)程序盜用,nios也是同樣的不靠譜,在flash當中,一樣沒有加密,會有安全問題。所以我覺得
    發(fā)表于 08-15 14:42

    邊緣智能的邊緣節(jié)點安全性

    設備。大多數(shù)工業(yè)物聯(lián)網(wǎng)用戶認為設備開箱即可使用。系統(tǒng)必須具有默認安全性。應當設定這樣的系統(tǒng)期望:除了默認配置以外,用戶可能永遠不會配置設備。默認密碼較弱是一個常見錯誤。網(wǎng)絡安全性在工業(yè)
    發(fā)表于 10-22 16:52

    藍牙m(xù)esh系列的網(wǎng)絡安全性

    藍牙m(xù)esh網(wǎng)絡安全性概覽為何安全性如此關鍵?安全性可謂是物聯(lián)網(wǎng)(IoT)最受關注的問題之一。從農(nóng)業(yè)到醫(yī)院、從智能家居到商業(yè)智能建筑、從發(fā)電站到交通管理系統(tǒng),物聯(lián)網(wǎng)系統(tǒng)和技術將觸及我們生活的方方面面
    發(fā)表于 07-22 06:27

    物聯(lián)網(wǎng)應用中BLE安全性怎么保證?

    安全性是設計物聯(lián)網(wǎng)(IoT)應用時面臨的最大挑戰(zhàn)之一。由于物聯(lián)網(wǎng)設備通過無線方式進行通話,因此一切控制和狀態(tài)信息以及私人用戶數(shù)據(jù)都可能會暴露于風險之中。不安全的物聯(lián)網(wǎng)設備可能會使人員生命和財產(chǎn)面臨
    發(fā)表于 08-02 07:57

    嵌入式實時多任務操作系統(tǒng)的安全性怎么樣?

    許多實時操作系統(tǒng)本身就有不安全性和不可靠,這些不安全因素就給黑客的入侵和病毒的攻擊留下了可趁之機。操作系統(tǒng)是最基本的系統(tǒng)軟件,它是對硬件系統(tǒng)的第一次擴充,同時給
    發(fā)表于 03-06 06:27

    嵌入式設備如何提高安全性

      隨著越來越多的嵌入式設備接入網(wǎng)絡并成為物聯(lián)網(wǎng)的一部分,網(wǎng)絡黑客們開始利用這些連接,以達到自己不可告人的目的。因此,嵌入式設備必須提高安全性,以防止黑客復制IP、盜竊數(shù)據(jù)或侵入系統(tǒng),可是對于嵌入式
    發(fā)表于 06-30 11:05

    HarmonyOS學習之三:HarmonyOS 系統(tǒng)安全性

    HarmonyOS(鴻蒙操作系統(tǒng))采用全新的微內(nèi)核設計,具有增強的安全性和低延遲。該微內(nèi)核旨在簡化內(nèi)核功能,在內(nèi)核外的用戶模式下實現(xiàn)盡可能多的系統(tǒng)服務,并增加相互的安全保護。微內(nèi)核本身僅提供線程調(diào)度
    發(fā)表于 11-26 09:30

    什么是藍牙m(xù)esh網(wǎng)絡安全性

    藍牙m(xù)esh網(wǎng)絡安全性的基本概念
    發(fā)表于 02-25 08:22

    有什么方法可以保證視頻設計的安全性嗎?

    如何利用FPGA的新功能來保證視頻設計的安全性?
    發(fā)表于 04-30 06:59

    你的應用程序如何保持安全性?

    引言擁有特權的惡意軟件或者可以實際訪問安卓設備的攻擊者是一個難以防范的攻擊向量。 在這種情況下,你的應用程序如何保持安全性?本文將討論 Android keystore 機制以及在嘗試實現(xiàn)安全
    發(fā)表于 07-28 08:40

    RISC-V如何保證高權限模式程序及外設的安全性?

    RISC-V有機器模式、監(jiān)管模式和用戶模塊,但無論在哪個模式下當TRAP發(fā)生時都會轉到機器模式,是不是也就意味著在用戶模式下進入中斷服務程序也會擁有機器模式的權限,那我們?nèi)绾?b class='flag-5'>保證高權限模式程序及外設的
    發(fā)表于 05-26 08:11

    如何保證Polkadot網(wǎng)絡安全性

    Polkadot網(wǎng)絡本質(zhì)上是一個異構多鏈的區(qū)塊鏈網(wǎng)絡,未來網(wǎng)絡中會有非常多不同共識,不同結構的平行鏈。每條平行鏈都有自己特有的數(shù)據(jù)、P2P網(wǎng)絡架構,并通過鏈接到Polkadot中繼鏈來
    發(fā)表于 08-09 11:39 ?823次閱讀
    如何<b class='flag-5'>保證</b>Polkadot<b class='flag-5'>網(wǎng)絡</b>的<b class='flag-5'>安全性</b>

    該如何保證網(wǎng)站的安全性建設

    網(wǎng)站安全性是網(wǎng)站運營的基礎,現(xiàn)在很多企業(yè)在建站的時候會使用到快源程序,開源程序的好處是方便快捷、簡單易上手,弊端也很明顯,那就是網(wǎng)站的安全性很難得到保障,如何在建站的時候保證網(wǎng)站的安全性
    發(fā)表于 08-21 14:22 ?751次閱讀

    如何避免網(wǎng)站遭遇網(wǎng)絡攻擊,幾種防護方式介紹

    用戶在運行網(wǎng)站的時候,肯定都不希望遭遇網(wǎng)絡攻擊,而維護網(wǎng)站安全是離不了網(wǎng)站管理員的日常維護,今天小編就來介紹下網(wǎng)站避免
    發(fā)表于 04-10 11:25 ?2697次閱讀