Repository navigation
Wydanie z poprawkami po lokalnym teście penetracyjnym. Aplikację zaatakowano na wersji testowej na trzy sposoby: ręcznie, z konta magazyniera i administratora, oraz narzędziami OWASP ZAP i sqlmap. Skanery nie znalazły wstrzyknięć SQL ani poważnych błędów, a ręczne próby wykazały kilka problemów, które ta wersja poprawia. Zalecana aktualizacja dla wszystkich instalacji.
Poprawki bezpieczeństwa
Bezpieczne znaki w kodach i nazwach lokalizacji
Kody kategorii, magazynów i pomieszczeń oraz nazwy regałów, półek i pojemników przyjmowały dowolne znaki. Ponieważ składają się na numer ewidencyjny, a ten na nazwę pliku z kodem QR, regał nazwany np. /../../x powodował zapisanie pliku QR poza przeznaczonym na to katalogiem. Teraz kody mogą zawierać tylko litery, cyfry, myślnik i podkreślnik, a nazwy regałów, półek i pojemników dodatkowo spację. Nazwa pliku QR jest też zawsze czyszczona, więc nawet stary numer ewidencyjny z nietypowymi znakami nie wyprowadzi pliku poza katalog kodów QR. Istniejące kody nie są zmieniane, ograniczenie działa przy dodawaniu i edycji.
Bezpieczny eksport CSV
Tytuł lub opis oferty zaczynający się od =, +, - albo @ mógł zostać wykonany jako formuła po otwarciu wyeksportowanego pliku w Excelu lub LibreOffice (np. =HYPERLINK(...) prowadzący do obcej strony). Takie wartości dostają teraz w pliku apostrof na początku, dzięki czemu arkusz pokazuje je jako zwykły tekst.
Reset hasła nie zdradza, kto ma konto
Formularz „Nie pamiętasz hasła?” dla nieistniejącego adresu odpowiadał komunikatem, że takiego użytkownika nie ma, co pozwalało sprawdzać, czy dany adres ma konto. Teraz odpowiedź jest zawsze taka sama.
Link „Wróć” tylko w obrębie strony
Link „Wróć do wszystkich ofert” na stronie oferty brał adres z nagłówka przeglądarki i w pewnych przypadkach mógł wskazywać obcą domenę. Teraz prowadzi wyłącznie do listy ofert na tej samej stronie, zachowując wybrany filtr kategorii.
Nagłówki bezpieczeństwa także na stronach błędu
Nagłówki bezpieczeństwa z wersji 1.2.2 nie były wysyłane na stronach „nie znaleziono” (404). Teraz są dodawane do każdej odpowiedzi aplikacji, a do zestawu doszedł nagłówek oddzielający okno aplikacji od okien otwartych z innych stron.
Sprawdzone i w porządku
Ochrona formularzy przed podrobionymi żądaniami, ignorowanie ukrytych pól przy edycji przedmiotu, blokada akcji administratora dla magazyniera, brak możliwości usuwania cudzych zdjęć, logowanie niezdradzające istnienia kont, nowa sesja po zalogowaniu, wylogowanie tylko przyciskiem, niewyświetlanie hasła SMTP oraz import CSV bez zapisywania plików na serwerze. Każdy z poprawionych problemów ma test, który pilnuje, żeby nie wrócił.
Aktualizacja
Panel administratora → Ustawienia → Aktualizacje → wgraj paczkę poniżej. Ta wersja nie zmienia bazy danych (brak nowych migracji). Jak zawsze: zrób kopię plików i bazy danych przed wgraniem. Po aktualizacji warto uruchomić ./security-check dla swojej domeny.
Paczka do wdrożenia: craty-1.2.3.zip (SHA-256: b00b447cee6c3ba52bc7c1123b4a7a10dcdbce1a3689d8062132bebe66aa0630)