from flask import Flask, request, jsonify import os import requests app = Flask(__name__) # 定义全局字符串变量 str_values = '' str_uvalues = '' # 从环境变量中获取密码 password = os.environ.get('PASSWORD', '123456') # 定义一个函数,接受 Cookie-Values 和要保留的键的列表作为参数 def filter_cookie_values(cookie_values, keep_keys): new_cookie_values = "" pairs = [pair.strip() for pair in cookie_values.split(';')] for pair in pairs: if '=' in pair: key, value = pair.split('=', 1) key = key.strip() value = value.strip() if key in keep_keys: new_cookie_values += f'{key}={value}; ' new_cookie_values = new_cookie_values[:-2] return new_cookie_values @app.route('/SET', methods=['POST']) def set_value(): method = request.method pwd = request.args.get('pwd') if not pwd or pwd!= password: return 'Invalid password', 401 keep_keys = ["_U", "MUID", 'KievRPSSecAuth', 'cct', 'buid', 'ak_bmsc', 'bm_sv', 'cl_dtrs', '_RwBf', 'SRCHHPGUSR', 'WLS'] keep_keys_u = ["_U", "WLS"] cookie_values = request.headers.get('Cookie-Values') set_value = filter_cookie_values(cookie_values, keep_keys) get_u_value = filter_cookie_values(cookie_values, keep_keys_u) if set_value: str_values = set_value if get_u_value and get_u_value not in str_uvalues: str_uvalues += ';' + get_u_value return 'Set value successfully' else: return 'No Cookie-Values in header', 400 @app.route('/GET', methods=['GET']) def get_value(): method = request.method pwd = request.args.get('pwd') if not pwd or pwd!= password: return 'Invalid password', 401 result = {'result': {'cookies': str_values}} return jsonify(result) @app.route('/CLS', methods=['GET', 'POST']) def clear_value(): method = request.method pwd = request.args.get('pwd') if not pwd or pwd!= password: return 'Invalid password', 401 replaced_str = str_uvalues.replace(';', '
') str_values = '' str_uvalues = '' return 'Clear value successfully' + '\n' + replaced_str @app.route('/HisU', methods=['GET', 'POST']) def history_u(): method = request.method pwd = request.args.get('pwd') if not pwd or pwd!= password: return 'Invalid password', 401 replaced_str = str_uvalues.replace(';', '
') return 'Ukey History:' + '\n' + replaced_str @app.route('/', methods=['GET', 'POST']) def root(): return 'Please visit /SET /GET or /CLS with?pwd=xxxxxx' @app.route('/q', methods=['GET']) def q_route(): url = request.args.get('url') if not url: return jsonify({'error': 'URL is required'}), 400 keep_keys = ["_U", "MUID", 'KievRPSSecAuth', 'cct', 'buid', 'ak_bmsc', 'bm_sv', '_RwBf', 'SRCHHPGUSR', 'WLS'] response = requests.get(url, headers={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0', 'Accept-Language': 'zh-CN,zh;q=0.9' }) set_cookie_array = response.headers.get('set-cookie', []) if set_cookie_array: cookies = [cookie.split(';')[0] for cookie in set_cookie_array] cookies_str = '; '.join(cookies) else: cookies_str = '' set_value = filter_cookie_values(cookies_str, keep_keys) result = {'result': {'cookies': set_value}} return jsonify(result) if __name__ == '__main__': app.run(port=7860)