Tovább a tartalomhoz

SVG-feltöltések

SVG-fájlok feltöltésének engedélyezése szerepkörönként, a feltöltéskori tisztítás, a tisztítás kikapcsolása és az engedélyezett címkék bővítése.

A WordPress alapból nem engedi az SVG-fájlok feltöltését, mert az SVG XML-alapú képformátum, amely rosszindulatú kódot is tartalmazhat. Különösen kockázatos, ha ismeretlen forrásból jön, vagy megbízhatatlan felhasználó tölti fel.

Az SVG-feltöltést szerepkörönként kapcsolhatod be a Bricks → Beállítások → Általános lapon, az SVG-feltöltések csoportban.

https://minta-bolt.hu/wp-admin/admin.php?page=bricks-settings
Az SVG-feltöltések csoport a szerepkörök kapcsolóival

A képen az SVG-feltöltések csoport látszik: minden szerepkörhöz egy kapcsoló tartozik.

  • A Bricks csak azokat a szerepköröket listázza, amelyek szerkeszthetnek bejegyzéseket.
  • Ha egy szerepkört bekapcsolsz, a Bricks megadja neki a bricks_upload_svg jogosultságot, és az ezzel a jogosultsággal rendelkező felhasználóknak engedélyezi az svg és svgz MIME-típusú feltöltéseket.
  • Egy-egy felhasználónál külön is felülbírálhatod a hozzáférést a felhasználó WordPress-profiljában: az egyéni beállítás a szerepkör alapértelmezésétől függetlenül engedélyezhet vagy tilthat.

Ha egy felhasználónak engedélyezve van az SVG-feltöltés, a Bricks a WordPress feltöltési folyamata közben megpróbálja megtisztítani a feltöltött SVG-fájlt.

A Bricks azokat a feltöltéseket tisztítja, amelyek típusa image/svg+xml. Feltöltéskor:

  • engedélyezi a .svg és .svgz feltöltést az SVG-jogosultsággal rendelkező felhasználóknak;
  • az SVG-t az enshrined/svg-sanitize tisztítókönyvtáron futtatja át;
  • a megtisztított SVG-kimenetet tömöríti (minifikálja);
  • felismeri a gzip-tömörített SVG-tartalmat, a tisztításhoz kicsomagolja, utána újra becsomagolja;
  • hibaüzenettel blokkolja a feltöltést, ha a tisztítás nem sikerül;
  • eltávolítja azt a kötelező 1 képpontos méretet, amelyet a WordPress az SVG-mellékletekhez rendelhet.

Az SVG-fájlfeltöltés más, mint az SVG elem Forrás: Kód működése. Az SVG elembe beillesztett SVG-forráskód végrehajtható Bricks-kódnak számít, ezért kódfuttatási jogosultság és érvényes kódaláírás kell hozzá.

Bölcs dolog tisztítani a WordPressbe feltöltött SVG-ket, de előfordulhat, hogy a Bricks tisztítóját ki akarod hagyni, mert egy másik megbízható folyamat végzi a tisztítást. Ehhez használd a bricks/svg/bypass_sanitization szűrőt:

add_filter( 'bricks/svg/bypass_sanitization', function( $bypass, $file ) {
// A Bricks tisztításának kihagyása előtt végezz saját ellenőrzést.
return $bypass;
}, 10, 2 );

A szűrő paraméterei:

  • $bypass: logikai érték; true visszaadásával kihagyod a Bricks tisztítását;
  • $file: a feltöltött fájl tömbje a $_FILES változóból.

Ha minden SVG-feltöltésnél ki akarod hagyni a tisztítást:

add_filter( 'bricks/svg/bypass_sanitization', '__return_true' );

Csak akkor hagyd ki a tisztítást, ha teljesen te felügyeled az SVG forrását, vagy a fájl tárolása előtt másik megbízható tisztító fut.

A tisztító engedélyezett címkéi és attribútumai

Szekció neve “A tisztító engedélyezett címkéi és attribútumai”

A tisztító az enshrined/svg-sanitize könyvtár alapértelmezett engedélyezett címkéit és attribútumait használja. Ritka esetben szükség lehet további SVG-címkék vagy attribútumok engedélyezésére, magas biztonságú környezetben pedig szűkítheted a listákat. A Bricks két szűrőt biztosít:

add_filter( 'bricks/svg/allowed_tags', function( $tags ) {
$tags[] = 'filter'; // A „filter” címke engedélyezése.
return $tags;
} );
add_filter( 'bricks/svg/allowed_attributes', function( $attributes ) {
$attributes[] = 'filterUnits'; // A „filterUnits” attribútum engedélyezése.
return $attributes;
} );

Óvatosan használd ezeket: további címkék vagy attribútumok engedélyezése újra biztonsági kockázatot hozhat, főleg azoknál az attribútumoknál, amelyek külső erőforrásra hivatkozhatnak vagy szkriptszerű viselkedést indíthatnak.

Az SVG-feltöltés bekapcsolása előtt:

  • csak megbízható szerepköröknek vagy megbízható egyéni felhasználóknak engedélyezd;
  • csak megbízható forrásból származó SVG-ket tölts fel;
  • hagyd bekapcsolva a tisztítást, hacsak nincs más megbízható tisztítód;
  • nézd át az egyéni engedélyezett címkéket és attribútumokat;
  • ne tekintsd a médiafeltöltéskori tisztítást védelemnek az SVG elem forráskódjára: az a kódfuttatási és kódaláírási biztonsági modellt követi.

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