网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using System.Threading;
using System.Threading.Tasks;

namespace Dpz.Core.Infrastructure.RateLimiting;

/// <summary>
/// 基于行为的IP限流服务接口
/// 专注于限制可疑行为,不限制正常请求频率
/// </summary>
public interface IIpRateLimitService
{
    /// <summary>
    /// 检查IP是否被限流
    /// 只检查状态,不记录任何访问信息
    /// </summary>
    /// <param name="ip">客户端IP</param>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>限流检查结果</returns>
    Task<RateLimitResult> CheckLimitStatusAsync(
        string ip,
        CancellationToken cancellationToken = default
    );

    /// <summary>
    /// 记录IP被拦截事件
    /// 当安全中间件检测到可疑行为时调用
    /// </summary>
    /// <param name="ip">客户端IP</param>
    /// <param name="reason">拦截原因(可选,用于日志)</param>
    /// <returns></returns>
    Task RecordBlockAsync(string ip, string? reason = null);

    // 注意:移除了以下方法
    // - CheckAndApplyRateLimitAsync (分离为单纯的检查)
    // - RecordAccessAsync (不再记录正常访问)
}
loading