設定防止攻擊session(疑惑)

2022-01-24 02:08:13 字數 2604 閱讀 9898

在登入的時候會對ip進行過濾,公司是這樣做的,有點困惑,先記錄下來。

#region 防攻擊操作限制。

if (setccstatus() || nduserdefenderlogin.intercept())

#endregion

其中setccstatus()就是ip過濾的,先看下其定義吧:

#region 設定防攻擊的 session。[setccstatus()]

/// /// 設定防攻擊的 session。

///

/// 如果超過了最大限制次數,則返回true;否則,返回false。

protected boolean setccstatus()

int32 count = (int32)httpcontext.current.session["countforcc"];//奇怪 session 的限制數怎麼會直接到session中取呢?

int32 maxcount = int32.parse(systemconfig.get("aqreg_login_maxcccount"));//最大的限制數 它是怎麼知道「aqreg_login_maxcccount」

if (count > maxcount)

return status;

}#endregion

那麼我們來看下 int32 maxcount = int32.parse(systemconfig.get("aqreg_login_maxcccount"));//最大的限制數 它是怎麼知道「aqreg_login_maxcccount」

先看這個systemconfig.get("aqreg_login_maxcccount")函式再說:

/// /// 獲取配置資訊。

///

/// 配置鍵。

/// 配置值。

public static string get(string key)

var config = store.where(p => p.syskey.tolower().trim() == key.tolower().trim()).firstordefault();

if (config == null)

not exists!", key));

}else

}

那麼get得到的引數是 aqreg_login_maxcccount,這是個怎麼樣的引數,可以獲得配置的值?先看下這個函式的實現:

/// /// 獲取配置資訊。

///

/// 配置鍵。

/// 配置值。

public static string get(string key)

var config = store.where(p => p.syskey.tolower().trim() == key.tolower().trim()).firstordefault();

if (config == null)

not exists!", key));

}else

}

看下這個函式可以知道 傳進來的key其實是對store(配置資訊進行查詢),看下store 的定義吧:

///

/// 配置資訊集合。

///

static liststore;

不用說systemconfiginfo就是個實體類了,看下這個實體類定義了什麼:

/// /// 系統配置資訊。

///

class systemconfiginfo

}#endregion

#region 獲取值。

/// /// 獲取值。

///

/// 值。

public string sysvalue

}#endregion

#region 建立例項。[instance(idatareader idr)]

/// /// 建立例項。

///

/// 資料流物件。

/// 系統配置資訊。

internal static systemconfiginfo instance(idatareader idr)

catch (exception ex)

}else

return obj;

}#endregion

}

獲得的配置資訊要載入loading()函式,這個函式其實就是實現配置資訊的例項化的。

這個loading()函式要到資料庫中查詢配置資訊:

/// /// 載入配置資訊。

///

static void loading()

}store = tmp; // 載入成功附加到正在使用的快取中。

logassist.getlogger("systemconfig\\debug").debug("基礎配置載入成功。");

}catch (exception ex)

}

防止IP攻擊

1.一段時間內ip連線數大於一定值則斷開該ip所有連線且拒絕ip一定時間內連線 2.一段時間內ip連線所傳送的資料大於一定值則斷開該ip所有連線且拒絕ip一定時間內連線 其實是實現判斷頻率的一種演算法,有乙個陷阱是如何判斷連續時間內的頻率,因為把時間分成一段段的話,按不同起始時間來分話頻率會不一樣。...

防止DDOS攻擊

ddos deflate是一款免費的用來防禦和減輕ddos攻擊的指令碼。它通過netstat監測跟蹤建立大量網路連線的ip位址,在檢測到某個結點超過預設的限制時,該程式會通過apf或iptables禁止或阻擋這些ip.程式的官方 站長百科上的詞條 ddos deflate 討論組 ddos defl...

防止CSRF攻擊

2.新增校驗token。前端發出請求時,加入從後端返回的token欄位的值 不能儲存在cookie中 攻擊者無法偽造的值 如果token不正確,不通過請求。3.設定 cookie 的samesite屬性 lax 相對嚴格模式,大多數情況下不傳送 cookie,導航到目標 的 get 請求除外。請求型...