Mit der neuen Magento-Version 1.9.2.2 bzw. dem Patch SUPEE-6788 wurde ein neues Feature eingebaut, mit dem das Einbinden von Blöcken explizit erlaubt werden muss. Laut der Info zum Patch betrifft das nur Blöcke, die über die CMS-Seiten und E-Mails eingebunden werden. Wir können derzeit aber nicht ausschließen dass das nicht doch auch andere Stellen betrifft.

Die Einbindung solch eines Blocks geschieht dabei üblicherweise über einen Tag wie in dem folgenden Beispiel:

{{block type=“cms/block“ block_id=“mrg_business_terms“}}

Dazu gibt es im Backend unter System -> Berechtigungen den neuen Menüpunkt „Blöcke“. Hierbei handelt es sich um eine Whitelist. Es können also nur Blocktypen verwendet werden, die explizit in diese Liste eingetragen sind und den Status „Allowed“ haben.

Permission-Blocks
Von Haus aus ist das Patch dabei sehr auf Sicherheit ausgelegt. Außer den Blöcken „core/template“ und „catalog/product_new“ sind nämlich keine weiteren Blöcke erlaubt. Das führt meistens dazu, dass nach der Installation des Patches eine ganze Reihe von Inhalten nicht mehr angezeigt werden.

Aus unserer Erfahrung werden in vielen Magento-Installationen Inhalte aus statischen Blöcken auf anderen Seiten eingebunden. Damit das weiterhin funktioniert muss auch der Blocktyp „cms/block“ freigegeben werden.

Für die Anzeige von einzelnen Produkten oder ganzen Listen werden ebenfalls gerne Einbindungen über Blöcke durchgeführt. Hierfür dienen normalerweise die Blocktypen „catalog/product_view“ bzw. „catalog/product_list„.

Gerade im deutschen Raum wird meistens mit der Extension Market Ready Germany gearbeitet. Hier wird vor allem in den Mails viel mit Blöcken gearbeitet, die Werte aus dem Impressum anzeigen. Damit das weiterhin funktioniert müssen die Blocktypen „imprint/field“ und „imprint/content“ freigegeben werden.

Je nachdem welche Extensions installiert sind, definieren diese oft eigene Blöcke. Solange es dazu noch kein Update gibt, welches die entsprechenden Blöcke in der Whitelist einträgt, kommt man kaum darum herum die Freigabe selbst durchzuführen. Hier hilft ein Blick in die Datenbank um herauszufinden, wo welche Blöcke im Inhalt eingebunden werden.

# Suche in den statischen Blöcken
SELECT * FROM `cms_block` WHERE `content` LIKE „%{{block type=%“;

# Suche in den CMS-Seiten
SELECT * FROM `cms_page` WHERE `content` LIKE „%{{block type=%“;

# Suche in den Kategorien
SELECT * FROM `catalog_category_entity_varchar` WHERE `value` LIKE „%{{block type=%“;
SELECT * FROM `catalog_category_entity_text` WHERE `value` LIKE „%{{block type=%“;

#Suche in den Produkten
SELECT * FROM `catalog_product_entity_varchar` WHERE `value` LIKE „%{{block type=%“;
SELECT * FROM `catalog_product_entity_text` WHERE `value` LIKE „%{{block type=%“;

#Suche in dem Mailvorlagen
SELECT * FROM `core_email_template` WHERE `template_text` LIKE „%{{block type=%“ OR `template_subject` LIKE „%{{block type=%“;