zoukankan      html  css  js  c++  java
  • .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;
            }
    

      注:以上思路和代码是本人在开发功能的过程中临时想到的,因为怕忘记,所以记到博客上,具体是否可行,还未进行测试。

        如有错误,望大神指正!

    更多技术问题,欢迎关注公众号【程序员在职场】进行获取

  • 相关阅读:
    LRu Cache算法原理
    c# 哈希表
    c# 获取二维数组的行数和列数
    Linq
    DataTable使用
    Wpf学习
    数据库配置
    js 数字保留两位小树
    平面数据转换为树形结构
    mysql操作
  • 原文地址:https://www.cnblogs.com/w821759016/p/10684619.html
Copyright © 2011-2022 走看看