From 6390a183274736322c37946f5b79941e8ea005c7 Mon Sep 17 00:00:00 2001 From: Capybara-z Date: Tue, 1 Apr 2025 15:25:07 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=20=D0=BF=D0=BE=D0=B4=D0=BF=D0=B8=D1=81=D0=BA?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Поставлены ограничения на символа ввода - Поравлен текст. --- handlers/keys/keys.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/handlers/keys/keys.py b/handlers/keys/keys.py index 2e85766f..931a5b45 100644 --- a/handlers/keys/keys.py +++ b/handlers/keys/keys.py @@ -2,6 +2,7 @@ import asyncio import locale import os import time +import re from datetime import datetime, timedelta from io import BytesIO @@ -200,7 +201,11 @@ async def handle_new_alias_input(message: Message, state: FSMContext, session: A alias = message.text.strip() if len(alias) > 10: - await message.answer("❌ Имя слишком длинное. Введите до 10 символов.") + await message.answer("❌ Имя слишком длинное. Введите до 10 символов.\nПовторите ввод.") + return + + if not alias or not re.match(r"^[a-zA-Zа-яА-ЯёЁ0-9@._-]+$", alias): + await message.answer("❌ Введены недопустимые символы или имя пустое. Используйте только буквы, цифры и @._-\nПовторите ввод.") return data = await state.get_data() From dc8ff4a0075872fbc436ae49d2f3e149fe5dd603 Mon Sep 17 00:00:00 2001 From: Capybara-z Date: Tue, 1 Apr 2025 15:45:37 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20html=20=D1=80?= =?UTF-8?q?=D0=B0=D0=B7=D0=BC=D0=B5=D1=82=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавил экранирование --- handlers/keys/keys.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/handlers/keys/keys.py b/handlers/keys/keys.py index 931a5b45..8ee7fbd1 100644 --- a/handlers/keys/keys.py +++ b/handlers/keys/keys.py @@ -1,4 +1,5 @@ import asyncio +import html import locale import os import time @@ -155,7 +156,7 @@ def build_keys_response(records): client_id = record["client_id"] expiry_time = record.get("expiry_time") - key_display = alias.strip() if alias else email + key_display = html.escape(alias.strip() if alias else email) if expiry_time: expiry_date_full = datetime.fromtimestamp(expiry_time / 1000, tz=moscow_tz)