惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
Martin Fowler
Martin Fowler
博客园_首页
量子位
T
Tailwind CSS Blog
博客园 - Franky
G
Google Developers Blog
D
DataBreaches.Net
Vercel News
Vercel News
B
Blog
Recent Announcements
Recent Announcements
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
爱范儿
爱范儿
博客园 - 【当耐特】
The Cloudflare Blog
H
Help Net Security
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
C
Check Point Blog
有赞技术团队
有赞技术团队
Microsoft Security Blog
Microsoft Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Crashprobe: как я заделал критическую уязвимость в версии...
AndreyProgramMaker · 2026-06-22 · via Все публикации подряд на Хабре

Простой

1 мин

0

Привет, Хабр! Недавно я опубликовал статью про свою библиотеку - crashprobe, которая перехватывает ошибки в синхронном коде Python и потоках, а затем генерирует о них красивый HTML или TXT отчёт.

Статья получила хорошие результаты, а читатели помогли сделать библиотеку лучше и безопаснее. Так внимательный читатель @vldmrmlkv обратил внимание на критическую уязвимость в безопасности версии 0.4.0.

В чём заключалась уязвимость?

Crashprobe собирает множество полезной в дебаге информации об ошибке, а потом вставляет её прямо в HTML шаблон. Уязвимость была предельно проста: я забыл поставить HTML экранирование при вставке заголовка ошибки (несмотря на то, что во всех остальных частях отчёта экранирование присутствовало😂). Тем самым если в тексте ошибки было вставлена HTML команда (например: raise Exception("<script>alert('XSS')</script>")) браузер выполнил бы эту команду, а сам отчёт получился не корректным.

Как я это исправил?

Благодаря подсказке читателя я выпустил патч 0.4.1, в котором исправил всё парой строчек кода, а именно добавил html.escape() в функцию генерации отчёта. Теперь любые теги отобразятся как безопасный текст.

Вместо вывода

Эта история - хороший пример того, что не нужно бояться показывать свой код миру, ведь open source и комьюнити всегда помогут сделать код лучше. Спасибо @vldmrmlkv за бдительность!

Теперь crashprobe безопасен. Если хотите видеть красивые HTML отчёты вместо скучных трейсбеков - ставьте или обновляйте библиотеку одной командой:

pip install --upgrade crashprobe

Спасибо что дочитали до конца! Буду рад фидбеку в коментариях!