CISA 已知被利用漏洞目录(此处)所缺失的 API。
可通过 https://kevin.gtfkd.com/ 访问 KEVin
目前已实施速率限制,边缘缓存设置为 3 小时。
如需查看托管实例的状态,请参阅我们的状态页面:https://kevinapi.statuspage.io/
python3 -m venv envsource env/bin/activatepip3 install -r requirements.txt添加必要的 API 密钥。
API_KEY=xxx
MONGODB_URI_PROD=mongodb://MONGO_PROD_IP:27017/
MONGODB_URI_DEV=mongodb://localhost:27017/
PUBLIC_BASE_URL=https://kevin.gtfkd.com
TRUSTED_HOSTS=kevin.gtfkd.com,localhost,127.0.0.1
ORIGIN_RATE_LIMIT_WINDOW_SECONDS=1
UNCACHED_QUERY_RATE_LIMIT=10
POINT_MISS_RATE_LIMIT=20
NEGATIVE_CACHE_TIMEOUT=15
NEGATIVE_CACHE_MAX_ENTRIES=1024
CACHE_SINGLEFLIGHT_WAIT_SECONDS=0
CACHE_FILL_LOCK_SECONDS=15
CACHE_TTL_JITTER_RATIO=0.1
可随意修改所使用的 mongodb 或变量名。我在这里同时保留了两者,因为我在为 kevin.gtfkd.com/* 上托管的 KEVin 版本处理生产环境和开发环境的 mongodb。
PUBLIC_BASE_URL 是用于首页元数据的规范公共源。
TRUSTED_HOSTS 是接受的 HTTP Host 头的逗号分隔允许列表;
请包含本地健康检查和反向代理所使用的主机名。
源站准入设置仅在启动时读取一次。Redis 在各 worker 之间强制执行
共享的按窗口限制:UNCACHED_QUERY_RATE_LIMIT 涵盖
列表和近期 KEV 缓存未命中,POINT_MISS_RATE_LIMIT 涵盖点查询、
RSS 和指标缓存未命中。已缓存的 2xx 和 4xx 响应共享相同的 TTL。
填充锁(CACHE_FILL_LOCK_SECONDS)通过所有者令牌在各 worker 之间
串行化源站工作,CACHE_SINGLEFLIGHT_WAIT_SECONDS 默认为 0,因此
存在争用的键会立即失败,CACHE_TTL_JITTER_RATIO 使用 secrets.randbelow 分散过期时间。
高基数的 /kev 搜索和 actor 变体不进入 Redis;精确
重复请求使用有界进程内缓存。
手动点资源还会在 Redis 之前保留最多 NEGATIVE_CACHE_MAX_ENTRIES
个短生命周期的本地未命中作为 L1 缓存。
设置 MongoDB:
运行 update.py
update.py 将从 CISA 拉取数据并填充你的 mongodb。尽情享用。
以下是用于部署 KEVin Web 部分的 docker-compose.yml 文件示例。
请确保你的 .env 文件包含正确的值!!!
version: '3'
services:
flask_app:
build:
context: . # The build context is now the KEVin folder
dockerfile: Dockerfile # Use the Dockerfile we created inside KEVin
container_name: KEVin
env_file:
- .env
networks:
- gtfkdProd
ports:
- "8444:8444" # Map host port to container port
restart: unless-stopped
networks:
gtfkdProd:
external: true
/kev/CVE-2023-1234/kev/kev/new/7/vuln/<string:cve_id>/vuln/<string:cve_id>/nvd/kev?search=Microsoft你不应将 mongodb 暴露到更广泛的互联网上。
欢迎贡献!如果你发现任何问题或有改进的想法,请随时提交 issue 或 pull request。目前我没有太多时间来改进这个项目。