python+flask实现类似cloudflare隐藏真实ip代理转发请求限速人机验证代码

代码语言:python

所属分类:其他

代码描述:python+flask实现类似cloudflare隐藏真实ip代理转发请求限速人机验证代码,可设置url单位时间内最多访问多少次,超过就要进行验证码识别真人操作,后台真实服务器ip不对外暴露,针对单个url限制。

代码标签: python 类似 flask cloudflare 隐藏 真实 ip 代理 转发 请求 限速

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
import base64
import random
import string
import threading
import time
from urllib.parse import quote, urlparse

import requests
from captcha.image import ImageCaptcha
from flask import Flask, Response, redirect, render_template_string, request, session

# =================================================================================================
# 配置项
# =================================================================================================
PROXY_HOST = "127.0.0.1"
PROXY_PORT = 8089
BACKEND_URL = "http://127.0.0.1:8081"
RATE_LIMIT_SECONDS = 5
VERIFICATION_TIMEOUT_MINUTES = 5
CLEANUP_INTERVAL_SECONDS = 60

# =================================================================================================
# 全局状态与 Flask 应用初始化
# =================================================================================================
visitors = {}          # { "ip": { "url_path": last_access_time } }
visitors_lock = threading.Lock()

needs_verification = {}  # { "ip": { "url_path": verification_start_time } }
verification_lock = threading.Lock()

app = Flask(__name__)
app.secret_key = 'url-isolated-captcha-secret-key'
app.config['SESSION_COOKIE_NAME'] = 'X-BFW-TOKEN'

# =================================================================================================
# 工具函数
# =================================================================================================
def check_rate_limit(ip, url_path):
    with visitors_lock:
        current_time = time.time()
        if ip not in visitors:
            visitors[ip] = {}
        last_access_time = visitors[ip].get(url_path, 0)
        if current_time - last_access_time < RATE_LIMIT_SECONDS:
            return False
        visitors[ip][url_path.........完整代码请登录后点击上方下载按钮下载查看

网友评论0