新聞中心
防止連擊(brute force )是一種攻擊,其中攻擊者反復(fù)嘗試同一動作或項目,此舉是為了破解密碼和其他安全令牌。 防止連擊是

成都創(chuàng)新互聯(lián),專注為中小企業(yè)提供官網(wǎng)建設(shè)、營銷型網(wǎng)站制作、自適應(yīng)網(wǎng)站建設(shè)、展示型成都做網(wǎng)站、網(wǎng)站設(shè)計等服務(wù),幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營銷推廣問題。
保護應(yīng)用程序免受惡意攻擊的有效方法。 有很多種方法可以實現(xiàn)此功能,使用Redis也是一種很好的選擇。
Redis帶來的比傳統(tǒng)的解決方案更好的性能,適用于更高負載的場景。 我們使用Redis的SETNX和EXPIRE指令來實現(xiàn)防火墻,這可以有效禁止過多的連擊嘗試以及保護用戶數(shù)據(jù)免受攻擊。
SETNX指令將給定鍵的值設(shè)置為給定的字符串,并返回1(如果鍵不存在)。 EXPIRE指令用來將鍵及其值設(shè)置為一個過期的計時器,以秒為單位。 這樣,只要鍵存在,將會阻止用戶訪問資源。
得到此結(jié)果的主要步驟如下所示:
1. 使用userId標識當前操作的用戶
2. 將指定鍵的值設(shè)置為給定的字符串,使用SETNX指令。
3. 使用EXPIRE指令為給定鍵設(shè)置指定的計時器(獨立時間范圍)。
4. 檢查鍵是否存在以檢查用戶發(fā)起的請求是否允許。
下面的代碼將使用Redis來實現(xiàn)防止連擊:
import redis
# 第 1 步:建立 Redis 連接
r = redis.Redis(host = 'localhost', port = 6379, db = 0)
# 第 2 步:將鍵設(shè)置為一個值
key = 'userId_' + ‘123456’
now = time.time()
value = str(now)
r.setnx(key, value)
# 第 3 步:設(shè)置過期時間
r.expire(key, 5) #以秒為單位
# 第 4 步:檢查鍵是否存在
if r.exists(key):
pass
else:
print("Request is denied")
因此,我們可以輕松地使用Redis來阻止連擊攻擊,同時還可以為應(yīng)用程序提供更好的性能。 當用戶超過時間間隔發(fā)出多個請求時,應(yīng)用程序?qū)⒕芙^此請求,從而有效地保護應(yīng)用程序和用戶的資源免受攻擊。
成都創(chuàng)新互聯(lián)建站主營:成都網(wǎng)站建設(shè)、網(wǎng)站維護、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動網(wǎng)站開發(fā)制作等網(wǎng)站服務(wù)。
網(wǎng)站標題:利用Redis解決防止連擊問題(redis防連擊)
URL網(wǎng)址:http://m.5511xx.com/article/djichig.html


咨詢
建站咨詢
