Back to questions
Junior — Middle
65
Каким образом вы организовывали защиту запросов в вашем проекте, и какие меры использовали для обеспечения безопасности?
Companies where asked
Ubic
Answer from AI
sobes.tech AI
Для защиты запросов в Python-проектах обычно применяются следующие меры:
- Аутентификация и авторизация: Использование токенов (JWT, OAuth), сессий или API-ключей для проверки прав доступа.
- Валидация и санитизация входных данных: Чтобы предотвратить SQL-инъекции, XSS и другие атаки.
- Использование HTTPS: Для шифрования трафика между клиентом и сервером.
- Ограничение частоты запросов (rate limiting): Для защиты от DDoS и brute force атак.
- CSRF-защита: В веб-приложениях для предотвращения межсайтовых подделок запросов.
- Логирование и мониторинг: Для обнаружения подозрительной активности.
Пример использования Flask с JWT для защиты эндпоинта:
from flask import Flask, request, jsonify
from flask_jwt_extended import JWTManager, jwt_required, create_access_token
app = Flask(__name__)
app.config['JWT_SECRET_KEY'] = 'super-secret'
jwt = JWTManager(app)
@app.route('/login', methods=['POST'])
def login():
username = request.json.get('username')
password = request.json.get('password')
# Проверка пользователя
if username == 'user' and password == 'pass':
access_token = create_access_token(identity=username)
return jsonify(access_token=access_token)
return jsonify({'msg': 'Bad credentials'}), 401
@app.route('/protected', methods=['GET'])
@jwt_required()
def protected():
return jsonify({'msg': 'Доступ разрешён'})
if __name__ == '__main__':
app.run(ssl_context='adhoc') # Запуск с HTTPS
Такой подход обеспечивает базовую защиту запросов и данных.