欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

糟糕,接口被刷了,怎么辦?

freeflydom
2024年2月15日 12:41 本文熱度 590

前言

在面試時,經(jīng)常會被問一個問題:如何防止別人惡意刷接口?

這是一個非常有意思的問題,防范措施挺多的。今天這篇文章專門跟大家一起聊聊,希望對你會有所幫助。

1 防火墻

防火墻是網(wǎng)絡(luò)安全中最基本的安全設(shè)備之一,主要用于防止未經(jīng)授權(quán)的網(wǎng)絡(luò)訪問和攻擊。

防火墻可以防止的攻擊行為包括:

  • 無效數(shù)據(jù)包:防火墻可以識別和過濾掉無效的數(shù)據(jù)包,如錯誤的 IP 地址、偽造的數(shù)據(jù)包和無法識別的協(xié)議等。

  • DOS 和 DDOS 攻擊:防火墻可以使用不同的技術(shù)來檢測和阻止 DOS 和 DDOS 攻擊,如阻止大量 TCP/UDP 連接、IP 地址過濾和流量限制等。

  • 病毒和蠕蟲攻擊:防火墻可以使用特定的病毒和蠕蟲檢測技術(shù),如簽名檢測、行為檢測、模式識別等,來防止這些惡意軟件的傳播。

  • 網(wǎng)絡(luò)釣魚和欺騙攻擊:防火墻可以檢測和防止網(wǎng)絡(luò)釣魚和欺騙攻擊,如防止虛假登錄頁面和欺騙的網(wǎng)站等。

  • 惡意流量攻擊:防火墻可以檢測和防止惡意流量攻擊,如過濾掉帶有惡意載荷的數(shù)據(jù)包和防止被黑客利用的端口。

  • 網(wǎng)絡(luò)偵察攻擊:防火墻可以使用一些技術(shù)來防止網(wǎng)絡(luò)偵察攻擊,如防止掃描、端口掃描和漏洞利用等。

防火墻主要用于過濾和控制網(wǎng)絡(luò)流量,以保護網(wǎng)絡(luò)安全。

2 驗證碼

對于一些非常重要的接口,在做接口設(shè)計的時候,要考慮惡意用戶刷接口的情況。

最早的用戶注冊接口,是需要用圖形驗證碼校驗的,比如下面這樣的:

用戶只需要輸入:賬號名稱、密碼和驗證碼即可,完成注冊。

其中賬號名稱作為用戶的唯一標識。

但有些圖形驗證碼比較簡單,很容易被一些暴力破解工具破解。

由此,要給圖形驗證碼增加難道,增加一些干擾項,增加暴力破解工具的難道。

但有個問題是:如果圖形驗證碼太復(fù)雜了,會對正常用戶使用造成一點的困擾,增加了用戶注冊的成本,讓用戶注冊功能的效果會大打折扣。

因此,僅靠圖形驗證碼,防止用戶注冊接口被刷,難道太大了。

后來,又出現(xiàn)了一種移動滑塊形式的圖形驗證方式,安全性更高。

此外,使用驗證碼比較多的地方是發(fā)手機短信的功能。

發(fā)手機短信的功能,一般是購買的云服務(wù)廠商的短信服務(wù),按次收費,比如:發(fā)一條短信0.1元。

如果發(fā)送短信的接口,不做限制,被用戶惡意調(diào)用,可能會產(chǎn)生非常昂貴的費用。

3 鑒權(quán)

對于有些查看對外的API接口,需要用戶登錄之后,才能訪問。

這種情況就需要校驗登錄了。

可以從當前用戶上下文中獲取用戶信息,校驗用戶是否登錄。

如果用戶登錄了,當前用戶上下文中該用戶的信息不為空。

否則,如果用戶沒登錄,則當前用戶上下文中該用戶的信息為空。

對于有些重要的接口,比如訂單審核接口,只有擁有訂單審核權(quán)限的運營賬號,才有權(quán)限訪問該接口。

我們需要對該接口做功能權(quán)限控制。

可以自定義一個權(quán)限注解,在注解上可以添加權(quán)限點。

在網(wǎng)關(guān)層有個攔截器,會根據(jù)當前請求的用戶的權(quán)限,去跟請求的接口的權(quán)限做匹配,只有匹配上次允許訪問該接口。

4 IP白名單

對于有些非常重要的基礎(chǔ)性的接口,比如:會員系統(tǒng)的開通會員接口,業(yè)務(wù)系統(tǒng)可能會調(diào)用該接口開通會員。

會員系統(tǒng)為了安全性考慮,在設(shè)計開通會員接口的時候,可能會加一個ip白名單,對非法的服務(wù)器請求進行攔截。

這個ip白名單前期可以做成一個Apollo配置,可以動態(tài)生效。

如果后期ip數(shù)量多了的話,可以直接保存到數(shù)據(jù)庫。

只有ip在白名單中的那些服務(wù)器,才允許調(diào)用開通會員接口。

這樣即使開通會員接口地址和請求參數(shù)被泄露了,調(diào)用者的ip不在白名單上,請求開通會員接口會直接失敗。

除非調(diào)用者登錄到了某一個白名單ip的對應(yīng)的服務(wù)器,這種情況極少,因為一般運維會設(shè)置對訪問器訪問的防火墻。

當然如果用了Fegin這種走內(nèi)部域名的方式訪問接口,可以不用設(shè)置ip白名單,內(nèi)部域名只有在公司的內(nèi)部服務(wù)器之間訪問,外面的用戶根本訪問不了。

但對于一些第三方平臺的接口,他們更多的是通過設(shè)置ip白名單的方式保證接口的安全性。

5 數(shù)據(jù)加密

以前很多接口使用的是HTTP(HyperText Transport Protocol,即超文本傳輸協(xié)議)協(xié)議,它用于傳輸客戶端和服務(wù)器端的數(shù)據(jù)。

雖說HTTP使用很簡單也很方便,但卻存在以下3個致命問題:

使用明文通訊,內(nèi)容容易被竊聽。
不驗證通訊方的真實身份,容易遭到偽裝。
無法證明報文的完整性,報文很容易被篡改。
為了解決HTTP協(xié)議的這些問題,出現(xiàn)了HTTPS協(xié)議。

HTTPS協(xié)議是在HTTP協(xié)議的基礎(chǔ)上,添加了加密機制:

SSL:它是Secure Socket Layer的縮寫, 表示安全套接層。
TLS:它是Transport Layer Security的縮寫,表示傳輸層安全。
HTTPS = HTTP + 加密 + 認證 + 完整性保護。

為了安全性考慮,我們的接口如果能使用HTTPS協(xié)議,盡量少使用HTTP協(xié)議。

如果你訪問過一些大廠的網(wǎng)站,會發(fā)現(xiàn)他們提供的接口,都是使用的HTTPS協(xié)議。

6 限流

之前提到的發(fā)送短信接口,只校驗驗證碼還不夠,還需要對用戶請求做限流。

從頁面上的驗證碼,只能限制當前頁面的不能重復(fù)發(fā)短信,但如果用戶刷新了頁面,也可以重新發(fā)短信。

因此非常有必要在服務(wù)端,即:發(fā)送短信接口做限制。

我們可以增加一張短信發(fā)送表。

該表包含:id、短信類型、短信內(nèi)容、手機號、發(fā)送時間等字段。

有用戶發(fā)送短信請求過來時:

先查詢該手機號最近一次發(fā)送短信的記錄
如果沒有發(fā)送過,則發(fā)送短信。
如果該手機號已經(jīng)發(fā)送過短信,但發(fā)送時間跟當前時間比超過了60秒,則重新發(fā)送一條新的短信。
如果發(fā)送時間跟當前時間比沒超過60秒,則直接提示用戶操作太頻繁,請稍后重試。
這樣就能非常有效的防止惡意用戶刷短信的行為。

但還是有漏洞。

比如:用戶知道在60秒以內(nèi),是沒法重復(fù)發(fā)短信的。他有個程序,剛好每隔60秒發(fā)一條短信。

這樣1個手機號在一天內(nèi)可以發(fā):60*24 = 1440 條短信。

如果他有100個手機號,那么一天也可以刷你很多條短信。

由此,還需要限制每天同一個手機號可以發(fā)的短信次數(shù)。

其實可以用redis來做。

用戶發(fā)短信之后,在redis中保存一條記錄,key是手機號,value是發(fā)短信的次數(shù),過期時間是24小時。

這樣在發(fā)送短信之前,要先查詢一下,當天發(fā)送短信的次數(shù)是否超過10次(假設(shè)同一個手機號一天最多允許發(fā)10條短信)。

如果超過10次,則直接提示用戶操作太頻繁,請稍后重試。

如果沒超過10次,則發(fā)送短信,并且把redis中該手機號對應(yīng)的value值加1。

短信發(fā)送接口完整的校驗流程如下:

7 監(jiān)控

為了防止被別人惡意刷接口,對接口的調(diào)用情況進行監(jiān)控,是非常有必要的。

我們的程序中可以將用戶的請求記錄,打印到相關(guān)日志中。

然后有專門的程序,統(tǒng)計用戶接口的調(diào)用情況,如果發(fā)現(xiàn)有突增的流量,會自動發(fā)短信或者郵件提醒。

有了監(jiān)控之后,我們可以及時發(fā)現(xiàn)異常的用戶請求。

后面可以進行人工干預(yù)處理。

最近就業(yè)形式比較困難,為了感謝各位小伙伴對蘇三一直以來的支持,我特地創(chuàng)建了一些工作內(nèi)推群, 看看能不能幫助到大家。

你可以在群里發(fā)布招聘信息,也可以內(nèi)推工作,也可以在群里投遞簡歷找工作,也可以在群里交流面試或者工作的話題。

進群方式

添加蘇三的私人微信:su_san_java,備注:博客園+所在城市,即可加入。

8 網(wǎng)關(guān)

為了保證我們接口的安全性,可以提供統(tǒng)一的API網(wǎng)關(guān),它可以實現(xiàn)過濾、鑒權(quán)、限流等功能。

用戶請求我們的API接口時,需要先經(jīng)過API網(wǎng)關(guān),它轉(zhuǎn)發(fā)請求到具體的API接口。

有了API網(wǎng)關(guān)層,可以保護API接口。


作者:蘇三說技術(shù),轉(zhuǎn)自博客園https://www.cnblogs.com/12lisu/p/18017367


該文章在 2024/2/18 11:46:18 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved