.net后台防止API接口被重復請求


思路大概是這樣的:

1.獲取到發出請求的客戶端的IP

2.將該IP存入Cache作為KEY,將次數作為Value初始化為0,過期時間設置為1分鍾

3.每次請求都將value+1,超過指定的次數后返回false

代碼是這樣的:

/// <summary>
        /// 同一Ip地址重復頻繁訪問限制
        /// 同一IP地址,1分鍾內不能請求5次以上
        /// </summary>
        /// <param name="ip">發出請求的IP地址</param>
        /// <returns></returns>
        private bool ValidIp()
        {
            var ip = IpToAddress.GetClientIP();
            if (MemCacheHelper.GetObject(ip) != null)
            {
                var cacheVal = (int)MemCacheHelper.GetObject(ip);
                if (cacheVal > 5)
                {
                    return false;
                }
                MemCacheHelper.SetObject(ip, (int)MemCacheHelper.GetObject(ip) + 1, 60);
            }
            MemCacheHelper.SetObject(ip, 0, 60);
            return true;
        }

  注:以上思路和代碼是本人在開發功能的過程中臨時想到的,因為怕忘記,所以記到博客上,具體是否可行,還未進行測試。

    如有錯誤,望大神指正!

 

 

更多技術問題,歡迎關注公眾號【程序員在職場】進行獲取


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM