Tovább a tartalomhoz

Kódaláírások

A végrehajtható Bricks-kód védelme az adatbázisban történő észrevétlen módosítás ellen: mikor kell aláírás, hogyan készül, és mikor kell újragenerálni.

A kódaláírások védik a végrehajtható Bricks-kódot attól, hogy valaki észrevétlenül módosítsa az adatbázisban.

Aláíráskor a Bricks a kódból a WordPress wp_hash() függvényével hash-t készít, és az aláírást a Bricks-adatokkal együtt tárolja. Futtatáskor a Bricks újra kiszámolja a tárolt kód hash-ét, és összeveti a mentett aláírással. Ha nem egyeznek, a Bricks blokkolja a végrehajtást.

A következő Bricks-kódhelyek csak érvényes aláírással futhatnak:

  • a Kód elem PHP/HTML-je, ha a kódvégrehajtás engedélyezve van
  • az SVG elem, ha a Forrás értéke Kód
  • a lekérdezési ciklus szerkesztőjének kódja
  • komponens lekérdezési tulajdonságok
  • globális lekérdezések rekordjai

A Kód elem közvetlen CSS- és JavaScript-részét a Bricks CSS/JS kimenetként adja ki, amikor a Kód elem lefut. Az aláírási kapu a végrehajtható PHP/HTML-mezőre és a fenti többi végrehajtható helyre vonatkozik.

A kódaláírások a kódvégrehajtás biztonsági modelljéhez kötődnek:

  • A kódvégrehajtást engedélyezni kell a Bricks → Beállítások → Egyéni kód lapon.
  • A felhasználónak rendelkeznie kell a Bricks Kód végrehajtása jogosultságával.
  • A kézi aláírás a szerkesztőben rendszergazdai szintű művelet. A globális újragenerálás a WordPress manage_options jogosultságát igényli.
  • Ha a BRICKS_LOCK_CODE_SIGNATURES állandó értéke true, a Bricks a jogosultságoktól függetlenül nem enged új aláírást.
  • A veszélyes automatikus szerkesztői aláírás külön, tudatos bekapcsolást igényel, és normál éles webhelyen nem ajánlott. Ehhez is kell az engedélyezett kódvégrehajtás, a Kód végrehajtása jogosultság és a feloldott kódaláírás.

Ha az Aláírás művelet nem hoz létre vagy nem frissít aláírást, ellenőrizd, hogy a kódvégrehajtás engedélyezve van-e, a felhasználónak megvan-e a Kód végrehajtása jogosultsága, rendszergazdai szintű-e a hozzáférése, és nincs-e zárolva a kódaláírás.

AI-kliensek csak akkor tárolhatnak és írhatnak alá PHP-kódot a támogatott Kód mezőkben, ha a PHP-képességeket a BRICKS_ENABLE_PHP_ABILITIES állandóval kifejezetten engedélyezted. A csatlakoztatott felhasználónak alkalmazásjelszót kell használnia, és rendelkeznie kell a manage_options jogosultsággal és a Bricks Kód végrehajtása jogosultságával. A kódvégrehajtás és az aláírászár ellenőrzései ilyenkor is érvényesek. Részletek: AI-képességek és készségek.

Aláírást készíthetsz egyedi elemhez a szerkesztőben, megnézheted az aktuális oldal aláíratlan kódját, vagy a Bricks beállításaiban az egész webhelyre újragenerálhatod az aláírásokat.

A szerkesztőben a végrehajtható, aláíratlan kódú elemek pirossal vannak kiemelve. A szerkezet panel tetején piros ujjlenyomat ikon is megjelenik.

Ha egy elemet szerkesztve szeretnél aláírást készíteni, kattints a kódszerkesztő feletti Kód aláírása gombra. Ha a kurzor a kódszerkesztőben áll, a CMD/CTRL + R is használható. A művelet csak akkor érhető el, ha a szükséges jogosultságok teljesülnek.

Az aláírás után mentsd az oldalt, hogy a módosított kód és az aláírás együtt kerüljön tárolásra.

Az aláíratlan kód megtekintése és tömeges aláírása

Szekció neve “Az aláíratlan kód megtekintése és tömeges aláírása”

Az aktuális oldal összes aláíratlan kódú elemét a szerkezet panel tetején lévő ujjlenyomat ikonnal nézheted meg és írhatod alá. Ugyanez az ikon az aláíratlan elemeknél a szerkezet panelen is elérhető.

Az egész webhely aláírása a Bricks beállításaiból

Szekció neve “Az egész webhely aláírása a Bricks beállításaiból”

Nyisd meg a Bricks → Beállítások → Egyéni kód lapot, és a Kódaláírások csoportban kattints a Kódaláírások újragenerálása gombra. Ez aláírást készít a Bricks-szel épített összes oldalhoz, sablonhoz, globális elemhez, komponens elemfához, komponens lekérdezési tulajdonsághoz és globális lekérdezési rekordhoz.

A művelethez nonce-szal ellenőrzött rendszergazdai kérés, manage_options, kódvégrehajtási jogosultság és feloldott kódaláírás kell. Ha a CSS-fájlok betöltése be van kapcsolva, a sikeres globális újragenerálás után a Bricks újragenerálja a CSS-fájlokat is.

Az újragenerálás előtt érdemes lefuttatni a Kódellenőrzést, és mentést készíteni.

A kódaláírás generálásának zárolása

Szekció neve “A kódaláírás generálásának zárolása”

Magas biztonságú környezetekhez a BRICKS_LOCK_CODE_SIGNATURES állandó még egy védelmi szintet ad.

Ha az állandó értéke true, a Bricks a felhasználói jogosultságoktól függetlenül megakadályozza új kódaláírások létrehozását. A zárat az aláírás előtt kell definiálni:

if ( ! defined( 'BRICKS_LOCK_CODE_SIGNATURES' ) ) {
define( 'BRICKS_LOCK_CODE_SIGNATURES', true );
}

Ha az állandó be van állítva, minden új aláírás kísérlete „Code signatures are locked” (a kódaláírások zárolva vannak) hibával tér vissza.

Mikor kell újragenerálni az aláírásokat

Szekció neve “Mikor kell újragenerálni az aláírásokat”
  • A WordPress sók vagy titkos kulcsok megváltoztatása után: ha a wp-config.php sói megváltoznak, a meglévő Bricks-kódaláírások érvénytelenné válnak.
  • Webhelyköltöztetés után: ha a webhelyet új domainre vagy szerverre viszed, generáld újra az aláírásokat, ha az új környezetben más WordPress sók vannak.
  • Aláírt kód szerkesztése után: a végrehajtható Bricks-kód módosítása megváltoztatja az aláírt tartalmat. Nézd át és írd alá a frissített kódot, mielőtt azt várnád, hogy lefut.

A kódaláírások korlátozzák, mire képes egy támadó pusztán adatbázis-hozzáféréssel.

Ha valaki szerkeszteni tudja a Bricks-adatokat az adatbázisban, de aláírást nem tud generálni, rosszindulatú kódot tehet be, de a Bricks nem hajtja végre, mert az aláírás hiányzik vagy érvénytelen.

A WordPress sók a wp-config.php fájlban tárolt titkos értékek. A Bricks a WordPress hash-rendszerét használja, ami ezektől a sóktól függ, ezért az egyik környezetben készült aláírás nem biztos, hogy egyezik egy másik, más sóval működő környezetben.

Ha a sók megváltoznak, a Bricks-nek újra kell generálnia az aláírásokat a jelenlegi, megbízható kódból.

A kódintegritás ellenőrzésének menete

Szekció neve “A kódintegritás ellenőrzésének menete”
  1. Kód- és aláírásgenerálás: a kód aláírásakor a Bricks eltárolja a kódból készített hash-t.
  2. A kód lekérése végrehajtáshoz: a kód betöltésekor a Bricks lekéri a tárolt kódot és aláírást.
  3. Ellenőrzés: a Bricks újra kiszámolja a lekért kód hash-ét, és összeveti a tárolt aláírással.
  4. Végrehajtási döntés: ha a hash-ek egyeznek, a kód továbbmehet a végrehajtási folyamatban. A hiányzó vagy eltérő aláírás blokkolja a végrehajtást, és „No signature” vagy „Invalid signature” hibát ad.

Miért rossz ötlet rendszeresen cserélni a WordPress sókat

Szekció neve “Miért rossz ötlet rendszeresen cserélni a WordPress sókat”

Ha megváltoztatod a wp-config.php sóit, az összes meglévő Bricks-kódaláírás érvénytelen lesz. Az aláírt kód újbóli futtatásához kézzel kell újragenerálnod őket a Bricks → Beállítások → Egyéni kód lap Kódaláírások csoportjában.

Egyes bővítmények automatikus sócserét kínálnak azzal az érvvel, hogy nehezebbé teszi a jelszavak feltörését. Ez nem igaz: a WordPress sók nem a felhasználói jelszavak hash-eléséhez kellenek. A sócsere nem ad plusz védelmet a jelszólopás vagy a nyers erejű támadás ellen.

A sócsere viszont ezeket okozza:

  • kijelentkezteti az összes felhasználót, mert érvényteleníti a hitelesítési sütiket;
  • elrontja a nonce-okat, ami megzavarhatja az űrlapbeküldést és az AJAX-kéréseket;
  • tönkreteheti azokat a bővítményeket, amelyek a sókat titkosításra vagy adatintegritásra használják;
  • érvényteleníti az összes Bricks-kódaláírást.

Ha a webhelyet nem törték fel, általában nincs gyakorlati ok a sók cseréjére, csak felesleges hibákat és instabilitást okoz.

Miért nem írja alá a Bricks automatikusan a kódot

Szekció neve “Miért nem írja alá a Bricks automatikusan a kódot”

A Bricks kézi aláírást kér, hogy az adatbázis megsértése ne vezethessen teljes kódvégrehajtáshoz.

Ha valaki hozzáfér az adatbázishoz, például egy másik bővítmény sebezhetősége vagy kompromittált hozzáférés miatt, kódvégrehajtási jogosultság nélkül is beírhat rosszindulatú kódot a Bricks-adatokba. Ez súlyos, de nem jelenti automatikusan, hogy PHP-t futtathat a szerveren.

Mivel a Bricks a webhely WordPress sóihoz kötött aláírásokat használ, a támadó pusztán adatbázis-hozzáféréssel nem teheti végrehajthatóvá a kódot. A beszúrt kód aláíratlan marad, és a Bricks blokkolja.

Ha a Bricks alapból aláírná a kódot, amikor egy jogosult felhasználó megnyitja a szerkesztőt, ez a védelem megszűnne: a támadó beültethetne rosszindulatú kódot, és megvárhatná, hogy egy jogosult felhasználó betöltse a szerkesztőt. A kézi aláírás kikényszerít egy ellenőrző pontot, mielőtt a kód végrehajtható lenne.

Veszélyes automatikus aláírás állandói

Szekció neve “Veszélyes automatikus aláírás állandói”

A Bricks két, tudatosan bekapcsolható állandót tartalmaz olyan szabályozott szerkesztői munkafolyamatokhoz, ahol vállalod az automatikus aláírás kockázatát.

Alapból ki vannak kapcsolva. Logikai true értékként add meg őket, ne 'true' szövegként.

Állandó Mit ír alá
BRICKS_DANGEROUSLY_AUTO_SIGN_CODE_ON_BUILDER_SAVE A szerkesztői mentési kérésben szereplő jogosult végrehajtható kódot: oldal- vagy sablonelemeket, globális elemeket, komponens elemfákat, komponens lekérdezési tulajdonságokat és globális lekérdezési rekordokat.
BRICKS_DANGEROUSLY_AUTO_SIGN_CODE_ON_BUILDER_RERENDER A szerkesztői előnézeti és újrarenderelési kérésekben szereplő jogosult végrehajtható kódot. A Bricks visszaadja a generált aláírás-metaadatot a szerkesztőnek, hogy frissítse a memóriabeli elemadatot. Egy későbbi szerkesztői mentés tárolja tartósan a frissített adatot.

Példa:

if ( ! defined( 'BRICKS_DANGEROUSLY_AUTO_SIGN_CODE_ON_BUILDER_SAVE' ) ) {
define( 'BRICKS_DANGEROUSLY_AUTO_SIGN_CODE_ON_BUILDER_SAVE', true );
}
if ( ! defined( 'BRICKS_DANGEROUSLY_AUTO_SIGN_CODE_ON_BUILDER_RERENDER' ) ) {
define( 'BRICKS_DANGEROUSLY_AUTO_SIGN_CODE_ON_BUILDER_RERENDER', true );
}

Egyik állandó sem kerüli meg a kódvégrehajtási jogosultságokat és a BRICKS_LOCK_CODE_SIGNATURES zárat. Ha a kódvégrehajtás ki van kapcsolva, az aktuális felhasználó nem hajthat végre kódot, vagy a kódaláírások zárolva vannak, a Bricks nem generál automatikusan aláírást.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások