Repository navigation
Защита учётных записей и служебных меток, проверка сканером OWASP ZAP и испорченными файлами.
При выкладке применяется миграция учётных записей: уже заведённые записи считаются
подтверждёнными с даты создания.
Добавлено
- Проверки: испорченные файлы в загрузку своих таблиц (пути наружу, пароль, бомбы
в архиве и книге Excel, внешние сущности XML, незакрытая кавычка, перегруженная страница
PDF), одновременный поиск, адрес возврата из формы, копия базы без схемы. - Документация: проверка защищённости сканером OWASP ZAP и испорченными файлами, замер
памяти стенда под нагрузкой.
Изменено
- Кабинет: регистрация заканчивается переходом по ссылке из письма; до этого в запись
войти нельзя. Страница отвечает одинаково свободному и занятому адресу, занятому уходит
письмо-напоминание. Неподтверждённая запись удаляется через трое суток. - Кабинет: браузер, из которого владелец уже входил, чужие неверные пароли не блокируют;
блокировка по одной почте действует на остальных. - Развёртывание: Django 6.1.3.
- Свои данные: книга XLSX и ODS проверяется до чтения по размеру и сжатию всех частей,
а не только листов; страница PDF больше чем с 10 000 линий и знаков отклоняется до разбора
(USERDATA_PDF_PAGE_OBJECTS, у сборников ведомств — до 2 646).
Исправлено
- Свои данные: таблица с незакрытой кавычкой роняла страницу «Что в таблице» ошибкой
сервера; теперь страница говорит, что разобрать не удалось, и называет причину. - Свои данные: книга Excel в сотни килобайт с огромным списком общих строк принималась
и разворачивалась в памяти сайта в сотни мегабайт. - Свои данные: PDF с перегруженной страницей разбирался во время загрузки десятки секунд
и занимал гигабайты памяти. - Поверхность: поиск вопросом изредка отвечал ошибкой сервера при одновременных запросах.
- Поверхность: форма «В исследование» отвечала ошибкой сервера, если в поле адреса
возврата подставить строку, которая не адрес; адрес возврата принимается, только если
это путь на этом сайте. - Сбор: путь от корня (
/…) внутри архива выпуска отклоняется, как и путь с «..». - Развёртывание: после выкладки, оборванной до миграций, следующая падала на резервной копии.
- Кабинет: выключение входа с кодом принимало неограниченное число неверных кодов;
теперь — пять в час на учётную запись. - Кабинет: ключ кодов входа во время настройки лежал в сеансе открытым; теперь зашифрован.
- Панель: метка закрытой ссылки на таблицу или исследование попадала в историю посещений
и в журнал веб-сервера; в обоих она заменяется звёздочкой, как метки ссылок из писем. - Кабинет: при недоступном Valkey пределы частоты (регистрация, восстановление пароля,
ввод кода) переставали действовать; теперь счёт ведёт рабочий процесс. - Сбор: архив выпуска, который разворачивается больше 2 ГБ, не распаковывается.
- Развёртывание: резервная копия, переименованная под другую отметку времени, не проходит
проверку; проверка называет дату и возраст копии.