You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NIST API速率限制疑问及异步请求报403错误咨询

NIST NVD API 请求频率规则与403报错排查

合规请求频率说明

两个规则不存在矛盾,适用场景不同:

  • 标称的持有API key可60秒窗口内发100次请求是峰值熔断阈值,不是给自动化脚本设置的允许请求频率,这个阈值是为了覆盖人工操作、偶发批量请求的突发场景,避免正常用户被误限。
  • 文档要求的脚本两次请求间隔≥6秒是自动化请求的强制规则,换算下来合规频率是10次/分钟,所有无人值守的脚本都必须遵守这个间隔要求,哪怕你持有有效API key,也不能尝试打满100次/分钟的峰值阈值,否则会触发管理层面的拦截。

24次异步请求触发403的具体原因

返回Request forbidden by administrative rules不是计数限流触发的,是前端WAF(Web应用防火墙)的管理规则拦截,常见触发原因有三个:

  • 异步并发突发请求触发拦截:NVD API的计数限流和WAF拦截是两套独立规则,哪怕你总请求数远低于60秒100次的阈值,只要在极短时间内发起并发请求(比如用aiohttp默认并发配置时,24次请求可能在1-2秒内就全部发出去了),就会被判定为恶意爬取/扫描流量,直接返回403。
  • API key传参方式错误:带key的请求必须把key放在请求头的apiKey字段中,如果你把key拼在URL参数里、或者字段名写错(比如写成api_key、apikey),系统会把你识别为无key用户,无key用户的拦截阈值极低,且限流规则是30秒内最多5次请求,很容易触发403。
  • 请求头缺失合法User-Agent:aiohttp默认的请求头UA会被WAF识别为恶意扫描工具,直接拦截请求,和请求频率无关。

可直接复用的合规请求示例

import asyncio
import aiohttp

# 替换为你自己申请的有效API key
API_KEY = "your_nvd_api_key"
NVD_API_ENDPOINT = "https://services.nvd.nist.gov/rest/json/cves/2.0"

async def get_cve_by_cpe(cpe_str: str, session: aiohttp.ClientSession):
    req_params = {"cpeName": cpe_str}
    req_headers = {
        "apiKey": API_KEY,
        # 替换为合法的UA标识即可,不需要和示例完全一致
        "User-Agent": "NVD-CVE-Collector/1.0 (internal research use)"
    }
    async with session.get(NVD_API_ENDPOINT, params=req_params, headers=req_headers) as resp:
        if resp.status != 200:
            resp.raise_for_status()
        return await resp.json()

async def batch_fetch_cve(cpe_list: list[str]):
    # 强制限制并发数为1,避免突发请求
    conn = aiohttp.TCPConnector(limit=1)
    async with aiohttp.ClientSession(connector=conn) as session:
        all_results = []
        for cpe in cpe_list:
            cve_data = await get_cve_by_cpe(cpe, session)
            all_results.append(cve_data)
            # 间隔设置为6.1秒,避免网络波动导致实际间隔不足6秒
            await asyncio.sleep(6.1)
        return all_results

注意:不要尝试通过多线程、缩短休眠时间的方式提升请求速度,持续触发WAF拦截会导致你的API key被临时甚至永久封禁,没有申诉通道。

内容的提问来源于stack exchange,提问作者Taylor B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 05:00:45