Smarty Security deaktivieren?

Hi,

gibt es die Möglichkeit den Smarty Security, welcher mit Shopware 5.3 aktiviert wurde auch wieder zu deaktivieren?

LG Tiina

Sag doch genau weswegen du das brauchst. Vielleicht macht es durchaus Sinn dass es eingeführt wurde.

Steht auch in der Doku: Shopware 5 upgrade guide

In sehr vielen Fällen, hat es aber Gründe, warum die Funktion gesperrt wurde :wink:

Der Hintergrund ist eine Smarty Security Fehlermeldung der Auftritt, wenn zwei bestimmte Plugins aktiv sind. Sind diese beiden Plugins einzeln aktiv, funktioniert alles ohne Probleme. Aber sobald diese gleichzeitig aktiv sind, kommt es sporadisch zur der Fehlermeldung auf der Artikeldetail Seite.

Fatal error: Uncaught SmartyException: directory '/var/www/vhosts/meinedomain.de/httpdocs/shopware530/engine/Shopware/Plugins/Community/Frontend/PremsPriceForValue/Views/shopware53/frontend/detail/block_price.tpl' not allowed by security setting in /var/www/vhosts/meinedomain.de/httpdocs/shopware530/engine/Library/Smarty/sysplugins/smarty_security.php:381 Stack trace: #0 /var/www/vhosts/meinedomain.de/httpdocs/shopware530/engine/Library/Smarty/sysplugins/smarty_internal_resource_file.php(33): Smarty_Security->isTrustedResourceDir('/var/www/vhosts...') #1 /var/www/vhosts/meinedomain.de/httpdocs/shopware530/engine/Library/Smarty/sysplugins/smarty_resource.php(532): Smarty_Internal_Resource_File->populate(Object(Smarty_Template_Source), NULL) #2 /var/www/vhosts/meinedomain.de/httpdocs/shopware530/engine/Library/Smarty/sysplugins/smarty_internal_resource_extends.php(41): Smarty_Resource::source(NULL, Object(Enlight_Template_Manager), '/var/www/vhosts...') #3 /va in /var/www/vhosts/meinedomain.de/httpdocs/shopware530/engine/Library/Smarty/sysplugins/smarty_security.php on line 381

Vor Shopware 5.3.0 haben die beiden Plugins zusammen ohne Probleme funktioniert. Auch bezweifle ich, dass es an einer Inkompatibilität liegt, da diese unterschiedliche Blöcke erweitern bzw überschreiben.

Während die beiden Plugin Entwickler an der Ursache des Problems rätseln bzw tüfteln, wollte ich als Übergangslösung die Smarty Security deaktivieren.

 

Die Doku hatte ich schon gelesen, bevor ich den Thread erstellt habe. Allerdings bringt es mich nicht wirklich weiter, da in diesen um die Whitelist geht. Allerdings sagt mir nicht die Fehlermeldung, welche Smarty Variable problematisch sein soll, weshalb ich die Whitelist nicht erweitern kann.

Du findest in der default.php ja die möglichen Konfigurationen: shopware/Default.php at 5.3 · shopware/shopware · GitHub

 'template_security' => [
        'enabled' => false,
    ],

 

1 „Gefällt mir“

Sind die Plugins denn verschlüsselt oder quelloffen? Das Views/shopware53/ muss im Modul als sicheres Verzeichnis angegeben werden.

Also dann so, wenn Du den Code selbst anpassen kannst:
 

$controller->View()->addTemplateDir( __DIR__. '/Views/shopware53/');
$controller->View()->loadTemplate('frontend/detail/block_price.tpl');

Die Pfeile werden in diesem Code leider nicht richtig dargestellt…

@Moritz Naczenski schrieb:

Du findest in der default.php ja die möglichen Konfigurationen: https://github.com/shopware/shopware/blob/5.3/engine/Shopware/Configs/Default.php#L203

‚template_security‘ => [
‚enabled‘ => false,
],

Danke, das hat nun vorübergehenderweise das Problem gelöst :slight_smile:

 

@coarsy schrieb:

Sind die Plugins denn verschlüsselt oder quelloffen? Das Views/shopware53/ muss im Modul als sicheres Verzeichnis angegeben werden.

Also dann so, wenn Du den Code selbst anpassen kannst:
 

$controller->View()->addTemplateDir( DIR. ‚/Views/shopware53/‘);
$controller->View()->loadTemplate(‚frontend/detail/block_price.tpl‘);

Die Pfeile werden in diesem Code leider nicht richtig dargestellt…

Die beiden Plugins sind verschlüsselt. Aber kann das wirklich das Problem sein? Den immerhin funktionieren beide ohne irgendwelche Smarty Security Fehlermeldung, wenn nur einer der beiden aktiv ist.

Hallo zusammen, 

wir haben aktuell ein ähnliches Problem und das hört sich so an als würde das hier sehr gut rein passen. 

 

Folgender Fehler wird uns in der Error Log ausgegeben: 

core.ERROR: SmartyException: directory '/var/www/vhosts/ domain.de/engine/Shopware/Plugins/Community/Frontend/BestitAmazonPay/Views/frontend/index/index.tpl’ not allowed by security setting

 

Zusätzlich kommt eine Weiße Seite und der Error 500 wenn der Nutzer sich einloggt. Ist hier die Lösung das Smarty security zu deaktivieren? 

 

besten Dank!

Und das bei einem komplett aktuellem AmazonPayment Plugin?

@coarsy schrieb:

Und das bei einem komplett aktuellem AmazonPayment Plugin?

 

genau ist die aktuellste Version 

Sehr komisch, bei mir läuft das Plugin völlig ohne derartige Probleme. Deswegen hatte ich jetzt erstmal auf eine ältere Version des Moduls bei Dir getippt.

@ wirthmaster:

Eventuell mal mit einer clean Installation des Plugins probieren. Vielleicht gab es beim Updaten des Plugins einen Fehler.

Ansonsten solltest du mal auf einer Testumgebung testen, ob der Fehler auch noch Auftritt, wenn nur das Plugin aktiv ist oder ob es erst zu Problemen kommt, wenn ein bestimmtes anderes Plugin ebenfalls aktiv ist.

@coarsy schrieb:

Sind die Plugins denn verschlüsselt oder quelloffen? Das Views/shopware53/ muss im Modul als sicheres Verzeichnis angegeben werden.

Also dann so, wenn Du den Code selbst anpassen kannst:
 

$controller->View()->addTemplateDir( DIR. ‚/Views/shopware53/‘);
$controller->View()->loadTemplate(‚frontend/detail/block_price.tpl‘);

Die Pfeile werden in diesem Code leider nicht richtig dargestellt…

 

Beide Plugins binden auf dem Detail Controller eigene TPL Dateien ein. Das TPL Verzeichnis wird über addTemplateDir registriert. Die TPLs an sich werden nicht über loadTemplate geladen. Die Struktur orientiert sich am Bare (detail/index.tpl / detail/buy.tpl) und werden automatisch geladen.