/
hed1ad
/
CloudGuard_API_Security_Platform
Обзор
Документация
Войти
/
hed1ad
/
CloudGuard_API_Security_Platform
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
tested_api_app/app.py
64 строки
2 KB
hed1ad
1.0.0
26 окт 2025, 14:25
26 окт 2025, 14:25
63b0f76
Код
Авторство
О чём код?
from flask import Flask, request, jsonify app = Flask(__name__) # Простая "база данных" пользователей users_db = { 1: {"id": 1, "name": "Alice", "email": "alice@example.com", "balance": 1000}, 2: {"id": 2, "name": "Bob", "email": "bob@example.com", "balance": 500}, 3: {"id": 3, "name": "Charlie", "email": "charlie@example.com", "balance": 750} } # Текущий аутентифицированный пользователь (для демонстрации) current_user_id = 1 @app.route('/') def home(): return jsonify({"message": "BOLA Demo API", "status": "running"}) @app.route('/api/user/<int:user_id>', methods=['GET']) def get_user(user_id): """ Уязвимая к BOLA ручка - не проверяет права доступа """ if user_id in users_db: return jsonify({ "user": users_db[user_id], "warning": "This endpoint has BOLA vulnerability - no access control" }) else: return jsonify({"error": "User not found"}), 404 @app.route('/api/secure/user/<int:user_id>', methods=['GET']) def get_user_secure(user_id): """ Защищенная ручка - проверяет права доступа """ # Проверка, что пользователь запрашивает свои данные if user_id != current_user_id: return jsonify({ "error": "Access denied", "message": "You can only access your own data" }), 403 if user_id in users_db: return jsonify({ "user": users_db[user_id], "message": "Access control implemented correctly" }) else: return jsonify({"error": "User not found"}), 404 @app.route('/api/users', methods=['GET']) def list_users(): """ Список пользователей (только основные данные) """ users_list = [ {"id": uid, "name": data["name"]} for uid, data in users_db.items() ] return jsonify({"users": users_list}) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True)