Skip to content

1.0.4-es javított kiadás

Pre-release
Pre-release

Choose a tag to compare

@galandras12 galandras12 released this 22 Jul 09:15
· 3 commits to main since this release
470aeaa

Mesterjelszó - Változásnapló

[1.0.4] - HOTFIX

Kritikus javítás: színválasztó és médiafeltöltő gombok nem működtek

Az 1.0.3-ban javított fül-váltási hiba ugyanazon gyökérokának egy másik,
addig fel nem ismert következménye jelentkezett: az admin felületen a
háttérszín-választó palettája nem jelent meg (sem a világos, sem a sötét
téma-barát színek), a logó és a háttérkép "Kiválasztás" gombjaira kattintva
pedig egyáltalán nem nyílt meg a WordPress média-feltöltő ablak.

Ok: az 1.0.3-as javítás kizárólag a fülváltás logikáját emelte ki a
megosztott jQuery(document).ready() eseménysorból - a színválasztó
(initColorPickers()) és a média-feltöltő (initMediaPickers())
inicializálása, valamint az összes többi admin.js funkció, továbbra is
ugyanabban a veszélyeztetett callback-ben futott. Ha egy másik, ugyanazon
az admin oldalon betöltődő bővítmény szkriptje hibát dob a saját
ready-callback-jében, az megakaszthatja az ez után regisztrált
callback-eket - jelen esetben a plugin TELJES admin.js inicializálását,
nem csak egy részét.

Javítás: az admin.js indítási mechanizmusa véglegesen átalakult:

  • többé nem jQuery(document).ready()-n keresztül indul, hanem natív
    document.readyState ellenőrzéssel és DOMContentLoaded
    eseményfigyelővel - ez teljesen független a jQuery saját, megosztott
    ready-sorától, ezért más bővítmények szkript-hibái nem tudják
    megakasztani;
  • minden egyes inicializáló funkció (színválasztó, média-feltöltő,
    átlátszóság csúszka, háttértípus-váltó, jelszó-mutat gombok,
    jelszó-egyezés ellenőrzés, élő előnézet, jelszó-megtekintés,
    "emlékezz rám" kapcsoló, megbízható IP-k kapcsoló) mostantól KÜLÖN
    try/catch blokkban fut - ha bármelyik hibát dobna (pl. hiányzó
    függőség miatt), az többé nem akasztja meg a többi funkció indulását;
    a hiba a böngésző konzoljába kerül kiírásra, jól azonosíthatóan a
    funkció nevével.

A wp-color-picker és a wp.media komponensek maguk természetesen továbbra
is jQuery/Backbone-alapúak és jQuery-t igényelnek - ez nem változott,
csak az INDÍTÁSUK módja lett független a megosztott ready-sortól.

Változás: alapértelmezett megjelenési mód

A jelszókérő felület alapértelmezett megjelenési módja "Sötét"-ről
"Világos"-ra változott, az ehhez illő, olvasható kontrasztú
alapértelmezett háttér- (#eef2f7) és szövegszínnel (#1a1c2c).
FONTOS: ez a változás KIZÁRÓLAG az újonnan telepített (vagy a
beállításokat még sosem mentett) weboldalakat érinti - ha már korábban
elmentetted a megjelenési beállításokat, azok változatlanul megmaradnak,
a mentett érték felülírja az alapértéket.

Technikai részletek fejlesztőknek

  • admin/js/mesterjelszo-admin.js: az indítás mjzAdminInit() néven
    önálló függvénybe szervezve, document.readyState/DOMContentLoaded
    alapon hívva; minden korábbi init*() hívás egy tömbön keresztül,
    egyenként try/catch-csel védve fut le.
  • includes/class-mesterjelszo-admin.php:
    get_default_settings() - color_mode alapértéke 'dark''light',
    bg_color alapértéke '#1a1c2c''#eef2f7',
    text_color alapértéke '#ffffff''#1a1c2c'.

[1.0.3] - HOTFIX

Kritikus javítás: az admin fülek nem nyíltak meg kattintásra

Több felhasználó jelezte, hogy az admin beállítási oldalon a
"Megjelenés", "Biztonság" és "Bejelentkezési napló" fülekre kattintva
semmi nem történt - a hover (rákattintás nélküli egérrel való rámutatás)
vizuális visszajelzése látszott, de a tényleges tartalom nem váltott át,
kizárólag az "Alapbeállítások" fül maradt látható és használható.

Valószínűsíthető ok: a tab-váltás logikája korábban egy jQuery
document.ready (jQuery(function(){...})) callback-en belül futott, a
plugin saját admin.js fájljában. Ha egy MÁSIK, ugyanazon az admin oldalon
betöltődő bővítmény szkriptje (a felhasználó esetében számos aktív
bővítmény - pl. Activity Log, Ultimate Member, Wordfence, Burst
Statisztika - egyaránt szóba jöhet) hibát dob a saját, szintén
document.ready-re feliratkozó kódjában, az bizonyos körülmények között
megszakíthatja az UTÁNA regisztrált ready callback-ek lefutását - ez
pontosan megmagyarázza, hogy a tiszta CSS-alapú hover miért működött
(nem függ JavaScript-től), miközben a kattintásra történő váltás
(jQuery-függő JS) miért nem futott le.

Javítás: a tab-váltás logikája teljesen kikerült a jQuery-alapú
admin.js fájlból, és egy önálló, natív (vanilla) JavaScript
<script> blokként került beágyazásra közvetlenül a fülek (<nav>)
HTML kódja mellé, a settings-page.php-ban. Ez a megoldás:

  • nem használ jQuery-t, ezért nem függ attól, hogy a jQuery megfelelően
    töltődött-e be, vagy hogy más bővítmények hogyan használják;
  • nem egy megosztott document.ready eseménysoron keresztül fut, ezért
    más bővítmények szkript-hibái nem tudják megakasztani;
  • közvetlenül a saját markup-ja mellett helyezkedik el, ezért semmilyen
    külső fájl betöltési sorrendjétől vagy sikerességétől nem függ.

Ha korábban ezt a problémát tapasztaltad, a frissítés után a fülek
azonnal, minden további teendő nélkül ismét működnek.

Új funkciók

  • Vizuális hibajelzés hibás jelszónál (jelszókérő felület)
    Hibás mesterjelszó megadásakor a jelszómező és a "Belépés" gomb
    mostantól jól látható, vörös kerettel (és finom fénykerettel)
    jelenik meg - a szín mindkét megjelenési módban (világos és sötét)
    külön hangolt, megfelelő kontrasztú árnyalatra vált (sötét módban
    világosabb korall-vörös, világos módban telítettebb, sötétebb vörös),
    hogy mindkét témán jól olvasható és észrevehető legyen.

  • Remegés animáció hibás próbálkozáskor
    A jelszómező (a szem-ikon gombbal együtt) egy rövid, finom
    megremegéssel jelzi a sikertelen próbálkozást, tovább erősítve a
    vizuális visszajelzést. Az animáció tiszteletben tartja a
    prefers-reduced-motion beállítást (a mozgás-érzékeny felhasználóknál
    automatikusan kikapcsol).

Technikai részletek fejlesztőknek

  • admin/js/mesterjelszo-admin.js: az initTabs() függvény és annak
    hívása eltávolítva.
  • admin/partials/settings-page.php: új, önálló <script> blokk a
    <nav class="mjz-tabs"> után, natív addEventListener-alapú
    tab-váltással, DOMContentLoaded védelemmel (ha a script a <body>
    még be nem fejezett betöltése közben fut le).
  • public/css/mesterjelszo-public.css: új --mjz-error és
    --mjz-error-glow CSS egyéni tulajdonságok, témánként külön értékkel;
    új .mjz-shake kulcsképkocka-animáció; új .mjz-submit.mjz-error-state
    szabály.
  • public/js/mesterjelszo-public.js: a showError()/clearError()
    függvények kiegészítve a gomb hibaállapot-osztályának kezelésével és
    egy új triggerShake() segédfüggvénnyel (kényszerített reflow-val az
    animáció megbízható újraindításához ismételt hibáknál is).

[1.0.2] - HOTFIX

Kritikus javítás: teljes weboldal-elérhetetlenség (503 hiba)

Több felhasználó jelezte, hogy a védelem bekapcsolása után a TELJES
weboldal - a bejelentkezési felülettel (wp-login.php) együtt - Error
503-mal vált elérhetetlenné, és a probléma azonnal megszűnt a védelem
kikapcsolásával.

Ok: a bővítmény korábban minden gate-megjelenítéskor MINDIG valódi
HTTP "503 Service Temporarily Unavailable" állapotkódot küldött, kifejezetten
SEO-megfontolásból (hogy a keresőmotorok ne indexeljék a jelszókérő
oldalt). Számos tárhelyi környezet - reverse proxy, CDN, gyorsítótár
(pl. LiteSpeed Cache) vagy biztonsági/tűzfal bővítmény (pl. Wordfence) -
azonban a saját, márkázott hibaoldalával helyettesíti az ilyen válaszokat,
ahelyett hogy továbbengedné a szerver által ténylegesen visszaadott HTML
tartalmat. Emiatt a látogató (és a webhely tulajdonosa) a plugin saját,
stílusos jelszókérő felülete helyett a tárhely/CDN generikus hibaoldalát
látta - függetlenül attól, hogy egyébként minden helyesen működött volna.

Javítás: a jelszókérő oldal mostantól ALAPÉRTELMEZETTEN sima HTTP
200-as válaszkóddal jelenik meg. A keresőmotoros indexelés elkerülését
továbbra is biztosítja a
címke és az X-Robots-Tag fejléc, HTTP hibaállapot nélkül is. A korábbi,
503-as viselkedés egy admin felületen (Biztonság fül → "Speciális /
kompatibilitás" kártya) kikapcsolható-bekapcsolható beállítás lett,
egyértelmű figyelmeztető szöveggel, saját felelősségre.

Ha korábban ezt a problémát tapasztaltad, a frissítés után a szokásos
módon aktiválhatod újra a védelmet - nincs szükség további teendőre.

Új funkciók

  • Bejelentkezési napló ("Bejelentkezési napló" admin fül)
    A sikertelen mesterjelszó-próbálkozásokat mostantól egy dedikált
    adatbázistábla naplózza: időpont, IP-cím, valamint (késleltetve,
    háttérben feltöltött) ország és város. Az admin felület négy összesítő
    számlálót mutat: 1 napon belül / 1 héten belül / 1 hónapon belül / 1
    éven belül történt sikertelen próbálkozások száma, valamint egy
    táblázatot a legutóbbi 100 próbálkozásról. A napló "Napló törlése"
    gombbal bármikor üríthető, és 1 évnél régebbi bejegyzések automatikusan
    törlődnek.
    A geolokációs adatokat (ország, város) egy külső, ingyenes, kulcsot nem
    igénylő IP-lekérdező szolgáltatás (ip-api.com) biztosítja; a lekérdezés
    SOSEM történik szinkron módon a látogató jelszó-beküldése közben (ez
    lassítaná a választ), hanem késleltetve, az admin naplófül
    megtekintésekor, kis kötegekben, 30 napos gyorsítótárazással. Helyi/privát
    IP-címekre nem történik külső lekérdezés.

  • Megbízható IP-címek listája
    A Biztonság fülön bekapcsolható és soronként feltölthető egy IP-cím
    lista (pontos IP vagy egyszerű IPv4 CIDR jelölés, pl.
    "203.0.113.0/24"), amelyről érkező látogatók automatikusan, a
    mesterjelszó megadása nélkül átjutnak a jelszókérő felületen. A
    funkció alapértelmezetten KIKAPCSOLT állapotú.

  • AJAX végpont kivételek
    A Biztonság fülön soronként megadható admin-ajax.php "action" nevek
    listája, amelyek mindig átjutnak a zároláson - ez teszi lehetővé, hogy
    más bővítmények (pl. nagy fájlfeltöltők) saját, látogatói oldali AJAX
    funkciói zárolt állapotban is működjenek.

Adatvédelmi megjegyzés

A bejelentkezési napló - a plugin más részeitől (a próbálkozás-korlátozó
mechanizmustól) eltérően - SZÁNDÉKOSAN a látogatók valódi, olvasható
IP-címét tárolja el, kifejezetten biztonsági auditálási céllal (támadási
minták, gyakori támadó IP-k azonosítása - hasonlóan más biztonsági
bővítmények, pl. a Wordfence saját naplózási funkcióihoz). Az adatok
legfeljebb 1 évig kerülnek megőrzésre, utána automatikusan törlődnek, és
bármikor manuálisan is törölhetők. Ha ezt a funkciót használod, érdemes
megemlítened a weboldalad adatkezelési tájékoztatójában.

Technikai részletek fejlesztőknek

  • Új osztály: Mesterjelszo_Login_Log (includes/class-mesterjelszo-login-log.php).
  • Új egyedi adatbázistábla: {prefix}mesterjelszo_login_log
    (id, ip_address, country, city, created_at), dbDelta()-val létrehozva.
  • Automatikus séma-frissítés: Mesterjelszo::maybe_upgrade(), a tárolt
    mesterjelszo_db_version option és az MESTERJELSZO_DB_VERSION
    konstans összevetése alapján - így a tábla akkor is létrejön, ha valaki
    csak lecseréli a plugin fájljait, deaktiválás/reaktiválás nélkül.
  • Mesterjelszo_Security::get_client_ip() protected-ből public-ra
    változott (a Login_Log osztály is ezt hívja, az IP-cím meghatározás
    logikájának egységesítéséhez).
  • Új metódusok: Mesterjelszo_Security::is_trusted_ip(),
    Mesterjelszo_Security::ip_matches().
  • Mesterjelszo_Public::maybe_gate() és protect_rest_api() kiegészítve
    a megbízható IP és az AJAX action kivétel-ellenőrzéssel.
  • Mesterjelszo_Public::render_gate_and_exit() mostantól feltételesen
    küldi a 503-as fejlécet, a use_503_status beállítás alapján.
  • Új beállítás-mezők: ajax_action_exceptions, use_503_status,
    trusted_ips_enabled, trusted_ips.
  • uninstall.php kiegészítve az egyedi napló-tábla és az új option-ök
    törlésével (single- és multisite esetén egyaránt).

[1.0.1]

Új funkciók

  • Jelenlegi mesterjelszó megtekintése (admin felület)
    Az "Alapbeállítások" fülön, a "Mesterjelszó" kártyán - ha már van
    beállított jelszó - megjelenik egy "Jelenlegi mesterjelszó" mező egy
    "Megtekintés" gombbal. A gombra kattintva, kizárólag manage_options
    jogosultsággal és dedikált nonce-cal védett AJAX kérésen keresztül,
    megjelenik az aktuálisan érvényes mesterjelszó. Ezzel más
    adminisztrátorok is nyomon tudják követni a beállított jelszót anélkül,
    hogy azt újra be kellene állítaniuk. A mezőhöz "Másolás" gomb is
    tartozik (vágólapra másolás).

  • "Emlékezz rám" opció a látogatóknak
    A "Biztonság" fül "Munkamenet" szekciójában új kapcsoló érhető el:
    "Emlékezz rám" opció engedélyezése a látogatóknak". Ha az
    adminisztrátor bekapcsolja, a jelszókérő felületen megjelenik egy
    jelölőnégyzet, amellyel a látogató kérheti, hogy a böngészője hosszabb
    ideig (alapértelmezetten 15 napig, adminisztrátor által 1-365 nap
    között állítható) maradjon feloldva a szokásos, óra-alapú munkamenet-
    hossz helyett.
    ALAPÉRTELMEZETTEN KIKAPCSOLT állapotú. Amíg az adminisztrátor be nem
    kapcsolja, a jelölőnégyzet nem jelenik meg, és minden látogatóra a
    meglévő, alapértelmezetten 24 órás (vagy az admin által beállított)
    munkamenet-hosszúság vonatkozik, változatlanul.

  • REST API kivétel-lista és XML-RPC mentesítés (Jetpack-kompatibilitás)
    A "Biztonság" fülön új "REST API kivételek (Jetpack és hasonló
    szolgáltatások)" kártya érhető el, ahol az adminisztrátor soronként
    megadhat olyan REST API route-prefixeket, amelyek mindig elérhetők
    maradnak, függetlenül a jelszóvédelem állapotától. Alapértelmezetten a
    "jetpack/v4" és "jetpack-blogs/1.1" prefixek szerepelnek a listán, mivel
    a Jetpack ezeken keresztül kommunikál a WordPress.com-mal (kapcsolat-
    kezelés, statisztikák, modulok stb.), és saját, aláírás-alapú
    hitelesítéssel rendelkezik.
    Emellett az xmlrpc.php végpont mostantól MINDIG, automatikusan
    kihagyásra kerül a zárolásból - ezen keresztül is jelentős Jetpack-
    kommunikáció zajlik, valamint más remote publishing eszközök,
    mobilalkalmazások is erre támaszkodhatnak.
    Ez a két változás oldja meg, hogy a Jetpack (és hasonló szolgáltatások)
    a korábbi verzióban "a weboldal nem elérhető" jellegű hibát adtak
    vissza, amikor a Mesterjelszó védelem be volt kapcsolva.

Biztonsági megjegyzés

A "Jelenlegi mesterjelszó megtekintése" funkció működéséhez a plugin a
jelszó egy MÁSODIK, visszafejthető másolatát is eltárolja az
adatbázisban, a meglévő, visszafejthetetlen hash MELLETT:

  • Titkosítás: AES-256-CBC.
  • A titkosító kulcs a WordPress saját, kizárólag a wp-config.php fájlban
    (tehát NEM az adatbázisban) tárolt AUTH_KEY / AUTH_SALT / SECURE_AUTH_KEY
    értékeiből származik - ez védelmi réteget ad: egy pusztán adatbázis-
    szintű adatszivárgás önmagában nem elegendő a titkosított mesterjelszó
    visszafejtéséhez.
  • A tényleges LÁTOGATÓI jelszó-ellenőrzés (a jelszókérő felületen történő
    bejelentkezés) továbbra is KIZÁRÓLAG az egyirányú hash-t használja - ez
    nem változott, és nem is fog.
  • A titkosított másolat kizárólag adminisztrátori (manage_options)
    jogosultsággal, dedikált nonce-cal védett AJAX kérésen keresztül
    kérdezhető le, és soha nem szerepel a nyers HTML forráskódban.
  • Ha a szerveren nem érhető el a PHP OpenSSL bővítménye, a funkció
    automatikusan inaktív marad (a "Megtekintés" gomb hibaüzenetet ad
    vissza), a plugin ettől függetlenül továbbra is helyesen működik a
    hash-elt formával.

Módosítások

  • A plugin fejléce (mesterjelszo.php) frissült:
  • "Tested up to" 7.0.1-re frissítve - a felhasználó megerősítette, hogy a
    bővítmény WordPress 7.0.1 alatt is hibamentesen működik.
  • A readme.txt Changelog szekciója mostantól csak rövid összefoglalót
    tartalmaz; a részletes, verziónkénti változásnaplót ez a changelog.txt
    fájl vezeti.

Technikai részletek fejlesztőknek

  • Új wp_options kulcs: mesterjelszo_password_encrypted (a titkosított,
    visszafejthető jelszó-másolat tárolására).
  • Új AJAX végpont: wp_ajax_mesterjelszo_reveal_password
    (Mesterjelszo_Admin::ajax_reveal_password()).
  • Mesterjelszo_Security::create_session() mostantól egy opcionális
    bool $remember paramétert fogad; ha true és az admin engedélyezte az
    "Emlékezz rám" funkciót, a beállított napok száma alapján számolja a
    munkamenet hosszát.
  • Mesterjelszo_Public::ajax_verify_password() beolvassa a beküldött
    remember_me mezőt, és továbbadja a create_session() hívásnak - a
    tényleges engedélyezés mindig szerver oldalon, az admin beállítás
    alapján dől el, kliens oldali módosítással nem kerülhető meg.
  • Mesterjelszo_Public::maybe_gate() új korai kilépési pont: ha
    XMLRPC_REQUEST konstans igaz, a metódus azonnal visszatér.
  • Mesterjelszo_Public::protect_rest_api() a REST route-ot a kérés
    URL-jéből (vagy csúf permalink esetén a rest_route query paraméterből)
    állapítja meg, és a beállított kivétel-prefixekkel veti össze
    (get_current_rest_route(), is_rest_route_exempt(),
    get_rest_exceptions()).
  • Új beállítás-mezők (mesterjelszo_settings option tömbben):
    remember_me_enabled (bool, alap: false), remember_me_days (int,
    alap: 15), rest_api_exceptions (soronkénti string, alap:
    "jetpack/v4\njetpack-blogs/1.1").
  • uninstall.php kiegészítve az új mesterjelszo_password_encrypted
    option törlésével (single- és multisite esetén egyaránt).
  • class-mesterjelszo-activator.php kiegészítve az új option
    inicializálásával aktiváláskor.

[1.0.0] - 2026-07-20

Első kiadás

  • Teljes weboldal-védelem egyetlen mesterjelszóval: oldalak, bejegyzések,
    egyedi tartalomtípusok, WordPress REST API és a bejelentkezési felület
    zárolása.
  • Modern, kártya-alapú, reszponzív admin felület élő előnézettel.
  • Mesterjelszó egyirányú (WordPress core szabvány szerinti) hash-elt
    tárolása.
  • Feltölthető logó, megjeleníthető weboldal-név, szabadon szerkeszthető
    üzenet.
  • Testreszabható háttér (szín/kép), átlátszóság, világos/sötét/automatikus
    mód, egyedi színek.
  • Középre igazított, nagy betűs, akadálymentes jelszókérő felület.
  • Brute-force védelem: próbálkozás-limit és ideiglenes zárolás,
    anonimizált IP-hash alapján.
  • Biztonságos, HttpOnly, SameSite sütire épülő munkamenet-kezelés.
  • Nonce-védelem, bemenet-validáció, kimenet-escaping minden felületen.
  • GDPR-barát adatkezelés, fordításra előkészített szövegek.

Új funkciók

  • Jelenlegi mesterjelszó megtekintése (admin felület)
    Az "Alapbeállítások" fülön, a "Mesterjelszó" kártyán - ha már van
    beállított jelszó - megjelenik egy "Jelenlegi mesterjelszó" mező egy
    "Megtekintés" gombbal. A gombra kattintva, kizárólag manage_options
    jogosultsággal és dedikált nonce-cal védett AJAX kérésen keresztül,
    megjelenik az aktuálisan érvényes mesterjelszó. Ezzel más
    adminisztrátorok is nyomon tudják követni a beállított jelszót anélkül,
    hogy azt újra be kellene állítaniuk. A mezőhöz "Másolás" gomb is
    tartozik (vágólapra másolás).

  • "Emlékezz rám" opció a látogatóknak
    A "Biztonság" fül "Munkamenet" szekciójában új kapcsoló érhető el:
    "Emlékezz rám" opció engedélyezése a látogatóknak". Ha az
    adminisztrátor bekapcsolja, a jelszókérő felületen megjelenik egy
    jelölőnégyzet, amellyel a látogató kérheti, hogy a böngészője hosszabb
    ideig (alapértelmezetten 15 napig, adminisztrátor által 1-365 nap
    között állítható) maradjon feloldva a szokásos, óra-alapú munkamenet-
    hossz helyett.
    ALAPÉRTELMEZETTEN KIKAPCSOLT állapotú. Amíg az adminisztrátor be nem
    kapcsolja, a jelölőnégyzet nem jelenik meg, és minden látogatóra a
    meglévő, alapértelmezetten 24 órás (vagy az admin által beállított)
    munkamenet-hosszúság vonatkozik, változatlanul.

  • REST API kivétel-lista és XML-RPC mentesítés (Jetpack-kompatibilitás)
    A "Biztonság" fülön új "REST API kivételek (Jetpack és hasonló
    szolgáltatások)" kártya érhető el, ahol az adminisztrátor soronként
    megadhat olyan REST API route-prefixeket, amelyek mindig elérhetők
    maradnak, függetlenül a jelszóvédelem állapotától. Alapértelmezetten a
    "jetpack/v4" és "jetpack-blogs/1.1" prefixek szerepelnek a listán, mivel
    a Jetpack ezeken keresztül kommunikál a WordPress.com-mal (kapcsolat-
    kezelés, statisztikák, modulok stb.), és saját, aláírás-alapú
    hitelesítéssel rendelkezik.
    Emellett az xmlrpc.php végpont mostantól MINDIG, automatikusan
    kihagyásra kerül a zárolásból - ezen keresztül is jelentős Jetpack-
    kommunikáció zajlik, valamint más remote publishing eszközök,
    mobilalkalmazások is erre támaszkodhatnak.
    Ez a két változás oldja meg, hogy a Jetpack (és hasonló szolgáltatások)
    a korábbi verzióban "a weboldal nem elérhető" jellegű hibát adtak
    vissza, amikor a Mesterjelszó védelem be volt kapcsolva.

Biztonsági megjegyzés

A "Jelenlegi mesterjelszó megtekintése" funkció működéséhez a plugin a
jelszó egy MÁSODIK, visszafejthető másolatát is eltárolja az
adatbázisban, a meglévő, visszafejthetetlen hash MELLETT:

  • Titkosítás: AES-256-CBC.
  • A titkosító kulcs a WordPress saját, kizárólag a wp-config.php fájlban
    (tehát NEM az adatbázisban) tárolt AUTH_KEY / AUTH_SALT / SECURE_AUTH_KEY
    értékeiből származik - ez védelmi réteget ad: egy pusztán adatbázis-
    szintű adatszivárgás önmagában nem elegendő a titkosított mesterjelszó
    visszafejtéséhez.
  • A tényleges LÁTOGATÓI jelszó-ellenőrzés (a jelszókérő felületen történő
    bejelentkezés) továbbra is KIZÁRÓLAG az egyirányú hash-t használja - ez
    nem változott, és nem is fog.
  • A titkosított másolat kizárólag adminisztrátori (manage_options)
    jogosultsággal, dedikált nonce-cal védett AJAX kérésen keresztül
    kérdezhető le, és soha nem szerepel a nyers HTML forráskódban.
  • Ha a szerveren nem érhető el a PHP OpenSSL bővítménye, a funkció
    automatikusan inaktív marad (a "Megtekintés" gomb hibaüzenetet ad
    vissza), a plugin ettől függetlenül továbbra is helyesen működik a
    hash-elt formával.

Módosítások

  • A plugin fejléce (mesterjelszo.php) frissült:
  • "Tested up to" 7.0.1-re frissítve - a felhasználó megerősítette, hogy a
    bővítmény WordPress 7.0.1 alatt is hibamentesen működik.
  • A readme.txt Changelog szekciója mostantól csak rövid összefoglalót
    tartalmaz; a részletes, verziónkénti változásnaplót ez a changelog.txt
    fájl vezeti.

Technikai részletek fejlesztőknek

  • Új wp_options kulcs: mesterjelszo_password_encrypted (a titkosított,
    visszafejthető jelszó-másolat tárolására).
  • Új AJAX végpont: wp_ajax_mesterjelszo_reveal_password
    (Mesterjelszo_Admin::ajax_reveal_password()).
  • Mesterjelszo_Security::create_session() mostantól egy opcionális
    bool $remember paramétert fogad; ha true és az admin engedélyezte az
    "Emlékezz rám" funkciót, a beállított napok száma alapján számolja a
    munkamenet hosszát.
  • Mesterjelszo_Public::ajax_verify_password() beolvassa a beküldött
    remember_me mezőt, és továbbadja a create_session() hívásnak - a
    tényleges engedélyezés mindig szerver oldalon, az admin beállítás
    alapján dől el, kliens oldali módosítással nem kerülhető meg.
  • Mesterjelszo_Public::maybe_gate() új korai kilépési pont: ha
    XMLRPC_REQUEST konstans igaz, a metódus azonnal visszatér.
  • Mesterjelszo_Public::protect_rest_api() a REST route-ot a kérés
    URL-jéből (vagy csúf permalink esetén a rest_route query paraméterből)
    állapítja meg, és a beállított kivétel-prefixekkel veti össze
    (get_current_rest_route(), is_rest_route_exempt(),
    get_rest_exceptions()).
  • Új beállítás-mezők (mesterjelszo_settings option tömbben):
    remember_me_enabled (bool, alap: false), remember_me_days (int,
    alap: 15), rest_api_exceptions (soronkénti string, alap:
    "jetpack/v4\njetpack-blogs/1.1").
  • uninstall.php kiegészítve az új mesterjelszo_password_encrypted
    option törlésével (single- és multisite esetén egyaránt).
  • class-mesterjelszo-activator.php kiegészítve az új option
    inicializálásával aktiváláskor.

[1.0.0]

Első kiadás

  • Teljes weboldal-védelem egyetlen mesterjelszóval: oldalak, bejegyzések,
    egyedi tartalomtípusok, WordPress REST API és a bejelentkezési felület
    zárolása.
  • Modern, kártya-alapú, reszponzív admin felület élő előnézettel.
  • Mesterjelszó egyirányú (WordPress core szabvány szerinti) hash-elt
    tárolása.
  • Feltölthető logó, megjeleníthető weboldal-név, szabadon szerkeszthető
    üzenet.
  • Testreszabható háttér (szín/kép), átlátszóság, világos/sötét/automatikus
    mód, egyedi színek.
  • Középre igazított, nagy betűs, akadálymentes jelszókérő felület.
  • Brute-force védelem: próbálkozás-limit és ideiglenes zárolás,
    anonimizált IP-hash alapján.
  • Biztonságos, HttpOnly, SameSite sütire épülő munkamenet-kezelés.
  • Nonce-védelem, bemenet-validáció, kimenet-escaping minden felületen.
  • GDPR-barát adatkezelés, fordításra előkészített szövegek.