BitPage

Бэкенд

PHP, Laravel, GraphQL, Python, доменное моделирование, серверные архитектурные решения и тестирование пайплайнов. Из практики зрелых монолитов и гринфилдов.

2 статьи

Тест на длительность видео был зелёным при обрезанной картинке: ffprobe мерил контейнер, а не дорожку

format=duration в ffprobe — это длительность контейнера, то есть максимум по дорожкам, а не длина картинки. Если звук натянут на всю длину ролика источником тишины, укороченное видео это число не изменит: в намеренно сломанной сборке контейнер отдал 13,139 с при видеодорожке 11,833 с, и тест остался зелёным. Мерить надо -select_streams v:0 -show_entries stream=duration, а допуск выводить из частоты кадров самого файла.

PHP теряет сессию после апгрейда: звёздочка в имени cookie превращается в %2A

PHP до 7.4.18 URL-кодировал имя session-cookie при отправке (звёздочка → %2A), а после фикса CVE-2020-7070 перестал декодировать имена входящих cookie. Имена перестают совпадать, сессия не находится, вход зацикливается. Окно поломки: 7.2.34, 7.3.23–7.3.33, 7.4.11–7.4.16, 8.0.1–8.0.3. Проверка — один session-id даёт 200 и 302 при разном написании имени.