|
from flask import Flask, request, jsonify |
|
import os |
|
import requests |
|
|
|
app = Flask(__name__) |
|
|
|
|
|
str_values = '' |
|
str_uvalues = '' |
|
|
|
password = os.environ.get('PASSWORD', '123456') |
|
|
|
|
|
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(';', '<br>') |
|
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(';', '<br>') |
|
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) |