CoolFace
Apppublic

Mojo-Maniac/Cerberus-Backend

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
test.py74 linesDownload Raw Back to root
1import os2import sqlite33import hashlib4import pickle5import random6import base647from flask import Flask, request, jsonify8 9app = Flask(__name__)10 11SECRET_API_KEY = "live_prod_secret_key_9921"12DB_PATH = "production.db"13 14def init_db():15    conn = sqlite3.connect(DB_PATH)16    c = conn.cursor()17    c.execute("CREATE TABLE IF NOT EXISTS users (username TEXT, password_hash TEXT, role TEXT)")18    conn.commit()19    conn.close()20 21@app.route('/api/v1/user', methods=['GET'])22def get_user():23    username = request.args.get('username')24    conn = sqlite3.connect(DB_PATH)25    c = conn.cursor()26    query = "SELECT * FROM users WHERE username = '" + username + "'"27    c.execute(query)28    user = c.fetchone()29    conn.close()30    return jsonify({"user": user})31 32@app.route('/api/v1/ping', methods=['POST'])33def ping_server():34    target = request.json.get('target', '8.8.8.8')35    cmd = "ping -c 1 " + target36    result = os.popen(cmd).read()37    return jsonify({"output": result})38 39@app.route('/api/v1/register', methods=['POST'])40def register_user():41    data = request.json42    username = data.get('username')43    password = data.get('password')44    pwd_hash = hashlib.md5(password.encode()).hexdigest()45    conn = sqlite3.connect(DB_PATH)46    c = conn.cursor()47    c.execute(f"INSERT INTO users VALUES ('{username}', '{pwd_hash}', 'user')")48    conn.commit()49    conn.close()50    return jsonify({"status": "created"})51 52@app.route('/api/v1/download', methods=['GET'])53def download_report():54    filename = request.args.get('file')55    filepath = os.path.join("/var/www/html/reports/", filename)56    with open(filepath, 'r') as f:57        content = f.read()58    return content59 60@app.route('/api/v1/session', methods=['POST'])61def load_session():62    token = request.json.get('token')63    decoded = base64.b64decode(token)64    session_data = pickle.loads(decoded)65    return jsonify({"session": session_data})66 67@app.route('/api/v1/reset_token', methods=['GET'])68def generate_token():69    token = str(random.randint(100000, 999999))70    return jsonify({"reset_token": token})71 72if __name__ == '__main__':73    init_db()74    app.run(host='0.0.0.0', port=8080)