Reference in New Issue
Block a user
Delete Branch "fix/issues-13-17"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #13, closes #17.
#13 — reflected XSS в debug-выводе
/post/htmldata["html"]["title"]вставлялся в debug-HTML без экранирования (title никогда не проходит bleach). Теперьhtml.escape, единообразно с соседнимraw_message. Аудит debug-ветки: других сырых вставок нет (body/footer санитайзятся вprocess_message). Регрессионный тест: poll с<script>в вопросе → в выводе только экранированная форма (проверено, что тест падает на старом коде).#17 — «голый» pytest давал 22 падения
Причины:
tests/pytest.iniне подхватывался при запуске из корня (терялсяasyncio_mode=auto, коллектились файлы из.venv), плюс каждый тест-модуль на импорте загрязнялsys.modules['config']. Фикс:pytest.iniсtestpaths = tests(старыйtests/pytest.iniудалён — конфиг один);tests/conftest.pyцентрализованно ставит sys.path и мок config до импорта тест-модулей;Проверено
Все три способа запуска дают одинаковый результат — 261 passed (260 + новый XSS-тест):
Ревью пройдено: проблем не найдено (в т.ч. проверены двойное экранирование, идемпотентность conftest, эквивалентность ini, отсутствие лишних удалений).
🤖 Generated with Claude Code