v0.28.0 - Krok 21 ZAMKNIETY: weryfikacja live
v0.28.0 — Krok 21 ZAMKNIETY: zabezpieczenie podstrony /generator-faq
Trzecia i ostatnia runda Kroku 21 — domkniecie z weryfikacja NA ZYWEJ stronie
(dworek.local). Zero zmian schematu bazy, zero nowych zaleznosci.
Nowy straznik: CSP standalone nie da sie cicho zlamac
tests/krok21-csp-inline-guard-test.php (15/15 OK) — statycznie pilnuje, zeby
zaden plik renderujacy panel wlasciciela na trasie standalone (AppShell,
HistoryPanel, GenerationsPanel, FaqToolPanel, PublicFaq,
GeneratorPage) nie dostal atrybutu onclick=/style=. CSP standalone ma
script-src/style-src BEZ unsafe-inline — nonce chroni tylko
<script nonce="...">, atrybuty inline przegladarka blokuje bezwzglednie,
bez bledu PHP, cicho, widoczne dopiero w konsoli przegladarki klienta.
Zweryfikowane: kod jest juz dzis czysty (zero takich atrybutow).
Weryfikacja na zywej stronie (dworek.local) — OBA adresy potwierdzone
/generator-faq/ (shortcode, wewnatrz motywu):
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: geolocation=(), camera=(), microphone=(), payment=(), usb=(), interest-cohort=()
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self'
-> script-src NIETKNIETY (motyw klienta dziala bez zmian)
/faqgenerator/ (standalone):
Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-<token>'; ...
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
-> nonce w naglowku === nonce w <script nonce="..."> TEGO SAMEGO zadania (potwierdzone)
-> ZERO zewnetrznych domen w HTML (default-src 'self' nie ma czego zablokowac)
Przy okazji potwierdzone: serwer/infrastruktura klienta juz wysyla wlasny
Strict-Transport-Security na /generator-faq/ — dowod na zywo, ze decyzja
"HSTS to sprawa serwera, wtyczka go nie ustawia" byla trafna: nasze naglowki
NIE kolidowaly z tym, co juz tam bylo.
Status Kroku 21 — ZAMKNIETY
Trzy rundy: (1) naglowki bezpieczenstwa + prompt injection z tresci strony,
(2) nonce CSP + COOP/CORP + przeglad tozsamosci podstrony, (3) straznik CSP
- weryfikacja live. Pelny raport:
plany/KROK21-ZABEZPIECZENIE-PODSTRONY.md.
Swiadomie NIEZWERYFIKOWANE (poza zakresem tej rundy, bez zywego srodowiska
do tego przygotowanego):
- testy obciazeniowe/DoS na
/ask— naleza do Kroku 22 (wprost w jego zakresie); - multisite na zywo — brak instalacji sieciowej do testu w tym srodowisku;
- panel wlasciciela na standalone pod pelnym CSP zweryfikowany WYLACZNIE
statycznie (guard test) — pelna sesja zalogowanego admina na zywo nie byla
testowana (wymagalaby danych logowania).
Odbior
php -l na wszystkich plikach — czysto
pelny runner (44 pliki tests/*.php) — 44/44 exit 0
weryfikacja live na dworek.local (curl, dwa adresy) — nagłówki zgodne z kodem co do bajtu
budzet API: 0
NASTEPNY KROK: Krok 22 — v1.0.0 (domkniecie: RWA, testy obciazeniowe,
instrukcja wdrozenia, LICENSE/readme.txt, i18n, skrypt Batch).