Skip to content

v0.2.0 — Security hardening

Latest

Choose a tag to compare

@julehtol julehtol released this 16 Jun 06:15
· 5 commits to main since this release
5736493

Turvallisuusvahvistuksia ja vakavien tietoturva­löydösten korjaus. Suosittelemme päivittämään.

Vakavimmat korjaukset

  • Cache bypass (Critical): kun kävijällä oli voimassa oleva sessio-cookie, plugin antoi WP:n renderöidä koko suojatun sivun ilman DONOTCACHEPAGE/no-store-headereitä. Sivu-/CDN-cachen takana ensimmäisen vierailijan avattu sisältö olisi voinut tallentua välimuistiin ja näkyä kaikille seuraaville ilman salasanaa. guard() lähettää nyt no-cache-headerit heti kun sivu on tunnistettu suojatuksi, myös valtuutetussa näkymässä.
  • REST/feed/oEmbed-vuoto (High): suojattu sisältö oli luettavissa ilman salasanaa WP REST APIn, RSS-/Atom-syötteiden ja oEmbedin kautta, koska portti oli vain template_redirect-hookissa. Uusi Content_Guard soveltaa samaa valtuutusta (admin tai voimassa oleva cookie) myös rest_prepare_post/page-, the_content_feed-, the_excerpt_rss-, comment_text_rss- ja oembed_response_data-suodattimiin.

Muut kovennukset

  • Session sidotaan salasanan hashiin (Medium): sessio-cookie sisältää allekirjoitetun `v`-sormenjäljen, jonka tarkistus epäonnistuu salasanan vaihdon tai suojauksen poiston/uudelleenluonnin jälkeen. Vanhat tokenit invalidoituvat automaattisesti.
  • SEO-piilotus oletuksena päällä (Medium): uudet suojaukset luodaan seo_hide=1-tilaan.
  • Secure-cookie myös TLS-terminoivissa proxyissa (Low): Secure-lippu asetetaan kun is_ssl() TAI siteurl on https.
  • Minimi salasanapituus 8 merkkiä (Info): pakotettu sekä lisäyksessä että vaihdossa.

Yhden löydöksen (globaali rate-limit per sivu) toteutus on tarkoituksellisesti lykätty, koska naivi globaali lukko mahdollistaisi DoS-hyökkäyksen kaikkia laillisia käyttäjiä vastaan. Käsitelty SECURITY-AUDIT.md-tiedostossa.

Testit

  • 48 yksikkötestiä (oli 37) — uudet ContentGuardTest ja Session-fingerprint-testit
  • PHPStan level 6 puhdas, WPCS puhdas

Asennus

  1. Lataa pakki-password-0.2.0.zip alta
  2. WP: Plugins → Add New → Upload Plugin → korvaa olemassa oleva 0.1.0
  3. Aktivoi (jos deaktivoitui upgrade-prosessissa)

Aiemmat sessio-cookiet invalidoituvat automaattisesti uuden fingerprint-vahvistuksen vuoksi — käyttäjien tarvitsee syöttää salasana uudelleen.

Täysi muutos­lista: v0.1.0...v0.2.0