fix: улучшена безопасность webhook и защита токена#95
Closed
bish-x wants to merge 2 commits intolove-apples:mainfrom
Closed
fix: улучшена безопасность webhook и защита токена#95bish-x wants to merge 2 commits intolove-apples:mainfrom
bish-x wants to merge 2 commits intolove-apples:mainfrom
Conversation
- webhook/base.py: предупреждение при запуске без secret - exceptions/dispatcher.py: __repr__ = __str__ для HandlerException и MiddlewareException (защита memory_context от утечки через %r) - methods/subscribe_webhook.py: предупреждение при подписке на HTTP URL - bot.py: __repr__ возвращает Bot(token='***') для защиты токена в логах Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Olegt0rr
approved these changes
Apr 8, 2026
love-apples
approved these changes
Apr 8, 2026
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
…ning Добавлены тесты для 3 непокрытых участков кода (Codecov patch coverage): - Bot.__repr__ маскирует токен (bot.py:204) - warnings.warn при http:// URL в SubscribeWebhook (subscribe_webhook.py:49-52) - logger warning при secret=None в BaseMaxWebhook (webhook/base.py:51) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Owner
|
@copilot resolve the merge conflicts in this pull request |
Contributor
Author
|
Закрываю как дубликат — все изменения этого PR уже в
Тесты HTTP-предупреждения и Ветку оставляю на случай если из неё пригодятся тесты. Спасибо за апрувы. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Описание
1. Предупреждение при запуске webhook без secret
Файл:
webhook/base.pyПри
secret=None(по умолчанию) webhook-эндпоинт принимает запросы без какой-либо аутентификации. Злоумышленник, знающий URL, может отправлять поддельные обновления. Добавленlogger_dp.warningпри запуске без secret.2. Исключения больше не утекают
memory_contextчерезrepr()Файл:
exceptions/dispatcher.pyHandlerExceptionиMiddlewareException— dataclass с автогенерированным__repr__, который выводил все поля, включаяmemory_contextс FSM-данными пользователей. Вdispatcher.py:986использовался%r→ полный контекст попадал в логи. Добавлен__repr__ = __str__, который выводит только ключи.3. Предупреждение при подписке webhook на HTTP (не HTTPS)
Файл:
methods/subscribe_webhook.pyURL вебхука не проверялся на использование HTTPS. Разработчик мог случайно подписать бота на HTTP-эндпоинт — обновления (включая сообщения пользователей) передавались бы по незашифрованному каналу. Добавлен
warnings.warn.4.
Bot.__repr__с маскировкой токенаФайл:
bot.pyДобавлен
__repr__, возвращающийBot(token='***'), для защиты от случайной утечки токена в логах и трейсбеках.Тестирование