Jak zabezpieczyć aplikację: sesja, panel, sekrety i zależności
Opselis
Cookie sesji, 2FA panelu, sekrety poza repo, composer audit i FIM. Po co każda kontrola, jak działa i jak ją włączyć w Magento, WordPress i na hoście z Wazuh.
Bezpieczeństwo aplikacji to kontrole w kodzie i na originie: sesja HTTP, panel admina, sekrety, zależności Composer/npm, upload plików, skan CVE. WAF na krawędzi odcina masę. Nie łata Magento ani wtyczki. Narzędzia: konfiguracja sklepu (`env.php`, `wp-config.php`), Magento_TwoFactorAuth, `composer audit`, agent Wazuh (FIM, SCA), skan OpenVAS. Cel: utrudnić kradzież sesji, wejście na adminhtml i wyciek hasła bazy z repo.
Do czego służy każda kontrola
Cookie sesji (HttpOnly, Secure, SameSite) ogranicza kradzież SID przez XSS i wysyłkę na HTTP. 2FA na panelu odcina hasło wyciekłe z phishingu. Sekret w menedżerze (Vault, SOPS, zmienne CI) a nie w Gicie: skan publicznego repo nie dostaje MariaDB. `composer audit` i `npm audit` pokazują znane CVE w bibliotekach. FIM (Wazuh) alarmuje, gdy ktoś zmieni `app/etc/env.php` albo doda plik w `pub/media`. Skan OpenVAS znajduje stare PHP i otwarte porty. Maskowanie dumpa na stagingu odcina kopię produkcji na laptopie agencji.
Jak działa
Sesja Magento siedzi w Redis albo w plikach. Po zmianie hasła stare SID muszą paść. Admin path inny niż `/admin` zmniejsza skan losowy, nie zastępuje 2FA. Upload bez allow-listy MIME to wektor webshell i Magecart (skrypt w media). Wazuh agent wysyła logi i checksum plików do managera. Reguła FIM: who-changed, path, alert level. OpenVAS loguje się na skan, NVT vs wersje usług, wynik to lista CVE z priorytetem.
Jak ustawić
Magento: Stores, Configuration, Web, Default Cookie: Use HTTP Only yes, Cookie SameSite Lax albo Strict na adminie. Security, 2FA: wymuś na wszystkich użytkownikach admin. `bin/magento config:set admin/url/use_custom 1` i własna ścieżka. `composer audit` w CI, fail joba przy critical. `env.php` poza repo, w deployu z sekretu. `pub/media` bez wykonywania PHP (nginx: `location ~ .php$` deny w media).
WordPress: `DISALLOW_FILE_EDIT` true, 2FA plugin albo SSO, xmlrpc off, `composer`/`wp plugin list` z datą aktualizacji. Host: agent Wazuh, FIM na `app/etc`, `wp-config.php`, `/etc/nginx`. SCA CIS, failed check z oknem łatki. OpenVAS: skan co tydzień, origin i panel. Cloudflare Access albo VPN na `/admin` i `/wp-admin`, nie hasło na 443 publicznym. Warstwy: security.