Skip to content

Releases: pakki-work/pakki-password

v0.2.0 — Security hardening

Choose a tag to compare

@julehtol julehtol released this 16 Jun 06:15
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

v0.1.0 — Ensimmäinen julkaisu

Choose a tag to compare

@julehtol julehtol released this 15 Jun 16:29

Ensimmäinen julkaisu Pakki Passwordista — vapaa, lisensitön WordPress-plugin yksittäisten sivujen ja postausten salasanasuojaukseen. Osa Pakki.work-kokonaisuutta.

Ominaisuudet

  • Suojaa yksittäisiä sivuja ja postauksia salasanalla
  • Per-sivu konfiguroitava istunto: 1 h / 24 h / 7 vrk
  • Per-sivu SEO-piilotus (noindex + ei sisäisissä hauissa eikä sitemapissa)
  • Cache-yhteensopiva (DONOTCACHEPAGE, Cache-Control: no-store, nginx X-Accel-Expires) — toimii myös LiteSpeed/WP Rocket/W3TC-sivuilla
  • Brute force -suoja: 5 yritystä / 15 min / IP+sivu
  • Kirjautuneet adminit ohittavat salasanan
  • Per-sivu loki: avausten määrä + viimeisin avaus
  • Pakki.work-brändätty front-end-lomake ja admin-näkymä
  • Integroituu automaattisesti Pakki.work-päävalikkoon kun pakkiwork-wp on aktiivinen; muuten alikohta Asetukset-valikossa

Tekniset tiedot

  • WordPress 6.3+
  • PHP 8.1+
  • HMAC-allekirjoitettu per-sivu cookie (HttpOnly, Secure jos HTTPS, SameSite=Lax)
  • Yksi tietokantataulu ({prefix}pakki_password_protected) — uninstall siivoaa kaiken
  • 37 yksikkötestiä (PHPUnit), WPCS + PHPStan level 6 puhtaita
  • Live smoke-testattu LocalWP-sandboxissa: kaikki 9 skenaariota läpi

Asennus

  1. Lataa pakki-password-0.1.0.zip alta
  2. WordPress: Plugins → Add New → Upload Plugin
  3. Aktivoi
  4. Asetukset → Pakki Password (tai Pakki.work → Pakki Password jos pakkiwork-wp on aktiivinen)

GPL-2.0-or-later.