Zu Ihrem Geschäft anpassen Prestashop , müssen Sie erstellen oder kaufen ein Thema. Diese Themen werden häufiger genannt "Vorlagen".
Um den Code für diese Themen zu behandeln, verwendet Prestashop eine Template-Engine: Smarty, die auch in vielen anderen verwendet wird, CMS oder Anwendungen. (PLICI, Pligg, Joomla, Wordpress mit einem Plugin, etc ...).
Das Problem wollen wir beschreiben, ist heute, dass ein Prestashop Vorlage kopiert werden kann, gestohlen, in Sekunden gestohlen.
Wir werden sehen, wie Sie Ihre Vorlage oder Thema Prestashop zu schützen.
Die hier beschriebene Vorgehensweise ist es, auf eigene Gefahr durchgeführt werden. Wir können in keiner Weise verantwortlich gemacht werden, wenn Ihr Geschäft nicht funktioniert, oder Ihr Thema wird nicht mehr angezeigt. Denken Sie daran, Backup-Dateien, die Sie ändern zu machen.
Zusammenfassung
1. Wie können Sie stehlen Ihre Vorlage oder Thema Prestashop
2. Sich einfach durch eine Prestashop Thema Diebstahl zu schützen. Htaccess
3. So schützen Sie Ihre Prestashop Vorlage Display
4. Alternative
5. Abschluss
1. Wie können Sie stehlen Ihre Vorlage oder Thema Prestashop?
Wir werden uns zunächst erklären, wo das Problem liegt in der Verwendung von Smarty durch Prestashop.
Seien Sie sich bewusst, dass jeder CMS, das würde Smarty verwenden, um, wie dieser Fehler Prestashop verwenden. Dies ist weder ein Fehler von Smarty, oder Prestashop. Es ist nur eine ungeschickte Verwendung.
Um den HTML-Code Ihrer Thema anzuzeigen, kompiliert Smarty verschiedene Dateien von Ihrer Vorlage. Diese Dateien können Dateien mit der Erweiterung sein. "DWT". "PHP" oder andere.
Dies ist, wo das Problem liegt. Prestashop verwendet Vorlagen basierten Dateien mit der Endung. "DWT".
Warum ist das ein Problem?
Beim Versuch, den direkten Zugriff auf eine Datei mit der Endung ". Tpl", wird ihr Inhalt in "clear" angezeigt.
Mit dem Code von Prestashop wissen wir, dass in einem Diagramm, gibt es Dateien erforderlich, um das Thema des Shops angezeigt (sofern Sie mehrere Teile des Codes Prestashop, das kompliziert klingt geändert haben). So wissen wir, dass Prestashop Dateien mit dem Namen: "index.tpl", "header.tpl", "footer.tpl", "404.tpl" usw..
Wir werden ein konkretes Beispiel zu nehmen, hat unser Team einen Laden läuft Prestashop http://www.magavenue.com/boutique/
Wir kennen die Style-Dateien (CSS), Lizenzgeber das Thema stilisieren, werden in einem Unterordner des Themas (Ordner / css /) befindet. Es ist das gleiche für Bilder im Zusammenhang mit dem Thema, oder JavaScript-Dateien.
Also einfach den Quelltext von unserem Shop (mit jedem Browser), für die Zeile der Adresse der CSS-Datei zu laden, ansehen und wir haben die Adresse, wo das Thema die in unserem Shop verwendet. (Wir könnten das gleiche mit einem Bild zum Beispiel zu tun).
Wenn wir die Quelle unseres Shops zeigen, dass wir ganz am Anfang des Codes, die folgende Zeile ein:
So wissen wir jetzt, dass unser Thema auf Prestashop ist: http://www.magavenue.com/boutique/themes/magavenue/
Sobald es bekam, ist nichts leichter, um Dateien aus dem Thema unseres Shops abrufen. Fügen Sie einfach die verschiedenen Dateinamen im Anschluss an diese Adresse.
Zum Beispiel:
http://www.magavenue.com/boutique/themes/magavenue/header.tpl
http://www.magavenue.com/boutique/themes/magavenue/footer.tpl
Es bleibt für uns Dateien CSS, JavaScript und andere Bilddateien zu erholen. Dass sie wird immer unverschlüsselt übertragen.
Innerhalb weniger Minuten erhalten Sie eine komplette Prestashop Thema erholt zu haben.
Welche Unterschiede zwischen Dateien wiederherstellen. Dwt eine Prestashop und direkt auf die Quelle?
Wenn Sie eine Prestashop zugreifen und Sie sehen die Quelle-Seite, Sie sehen nur den kompilierten Code des Themas, also die html. Aber es wird sehr schwer in der Lage sein, dies zu versammeln, um das Thema zu einem anderen Geschäft zu gewöhnen. Während in Abrufen von Dateien. Dwt, erhalten Sie eine komplette Thema, dass man auf einem Prestashop zu implementieren, um den HTML-Code leicht zu generieren.
2. Sich einfach durch eine Prestashop Thema Diebstahl zu schützen. Htaccess
Eine Möglichkeit zum Diebstahl Ihrer Prestashop Vorlage zu verhindern, ist eine. Htaccess-Datei verwenden.
In der Tat, wenn jemand Test den direkten Zugriff auf verschiedene Dateien. Dwt wie wir oben gezeigt, wird sie zu einer anderen Seite (der Index Ihrer Website zum Beispiel) umgeleitet.
. Um dies zu tun, müssen Sie eine htaccess-Datei in Ihrem Thema zu erstellen und dann wieder in den folgenden Code ein:
RewriteCond% {HTTP_REFERER}! ^ Http :/ / magavenue.com / Boutique /. * $ [NC]
RewriteCond% {HTTP_REFERER}! Http :/ / magavenue.com / Boutique ^ $ [NC]
RewriteCond% {HTTP_REFERER}! ^ Http :/ / www.magavenue.com/boutique/. * $ [NC]
RewriteCond% {HTTP_REFERER}! Http :/ / www.magavenue.com / Boutique ^ $ [NC]
RewriteRule * \ (jpg | jpeg | gif | png | bmp | swf | DWT | css).. $ Http://www.magavenue.com/boutique/ [R, NC]
Natürlich werden Sie auch verstehen, müssen http://www.magavenue.com/boutique/ durch die Adresse Ihres Shops zu ersetzen.
Wenn Bilder oder das Thema Ihrer PrestaShop Shop nicht mehr angezeigt, dann haben Sie wahrscheinlich die falsche Adresse in dieser Phase getreten.
Die. Htaccess ist nicht zuverlässig, und Ihre Prestashop Vorlage kann immer noch gestohlen werden.
Sie richten eine erste Barriere. Wenn wir den direkten Zugriff auf eine Datei von Ihrem Thema versuchen, werden wir auf den Index Ihres Shops umzuleiten.
Doch das Problem nicht gelöst ist, kann dieser Schutz leicht umgangen werden, so dass Sie gekommen sind, um Dateien zu schützen. Dwt Display.
3. So schützen Sie Ihre Prestashop Vorlage oder Thema des Displays
Wie wir im ersten Teil erläutert, ist das Problem, dass wir hervorheben, dass die Dateien der Vorlagen die Basis Prestashop Dateien sind. Dwt, die klar erscheinen. Es sollte daher kommen, um sicherzustellen, dass, wenn wir auf die Datei zugreifen, es nicht eine gewöhnliche Datei "Text" betrachtet, wird aber von dem Server, auf dem es steht, ausgeführt.
Sollte klarer, so dass die Template-Dateien oder Dateien mit der Endung ". Php", so dass sie nicht direkt angezeigt werden, sondern ausgeführt.
Um unsere Prestashop Thema des Fluges zu schützen, so dass wir alle unsere Dateien im Datei von unserem Thema zu ändern. Durch die Veränderung ihrer Erweiterungen. "DWT" to ". Php". Es gibt bereits eine Datei index.php, leiten Sie den Benutzer den direkten Zugriff auf die Datei Ihres Templates. Sie müssen löschen, um die Datei index.tpl in index.php umzubenennen. Die. Htaccess leitet den Benutzer bereits.
Wenn man auf eine Datei. PHP nicht mit PHP, wird es den Template-Code sowieso anzuzeigen.
In der Tat, wenn wir direkten Zugriff auf eine Datei. Dwt umbenannt. Php, werden wir immer Zugriff auf die Template-Quelle.
Dies erfordert, dass der Code als PHP-Code ausgeführt wird.
Wir fügen den Anfang jeder Datei "DWT" den folgenden Code ein.:
<?
{/ If}
Was bedeutet dieser Code?
Wenn wir Zugriff auf eine Datei direkt mit diesem Code, der "{if $ magavenueblog == 1}" wird im Klartext und einfache behandelt, es wird nicht als PHP interpretiert werden.
Durch die Nachteile aus dem Punkt, wo der Interpreter auf dem "<?" Fallen wird, wird die Datei als PHP interpretiert werden, und tritt ein Fehler auf. In der Tat ist der Code "{/ if}" ist keine gültige Anweisung in PHP. Es wird nicht länger möglich sein, den Template-Code direkt anzuzeigen.
Durch die Nachteile, wenn wir Summe durch den Einsatz des Templates by PrestaShop und damit Smarty, wenn der Dolmetscher kommt auf "{if $ magavenueblog == 1}", wird es aussehen, wenn es ein Thema in der Variable $ magavenueblog. Es existiert nicht, es wird nicht angezeigt, die "<?". Die Anzeige der Vorlage kann dann korrekt ohne den zusätzlichen Code ausgeführt wird, ist nicht ein Problem.
Wie es für Prestashop ändern berücksichtigt die Datei. Php statt. Dwt?
Die wichtigste Frage für die sichere Vorlagen, konnte sich leicht ändern, um PrestaShop Vorlagen mit Dateien unterbringen. Php Dateien statt. Dwt.
Denn auf jeder Seite Ihres Shops haben Sie Funktionen aufrufen Smarty-Dateien. Dwt. Es wäre daher sehr lange für alle Änderungen eines nach dem anderen, nicht zu vergessen, und wiederholen Sie diesen jedes Update.
Daher ist die Funktion zwischen Achsenabschnitt und Smarty aufrufen Prestashop Dateien auf Anfragen in einer Datei. Dwt in eine Datei umleiten. PHP.
Soll ich das ändern. Dwt in den Modulen und anderen Prestashop enthalten?
Ein weiteres Problem in unserer Lösung ist, dass wir zunächst Dateien zu modifizieren. DWT-Datei in unserem Thema. PHP. Aber wir müssen auch alle Dateien ändern. Dwt in den Modulen, tun dies bei jeder Installation eines neuen Moduls. Kurz gesagt: es scheint auch sehr kompliziert zu implementieren.
Also werden wir unser Verlangen umleiten, um einen Zustand herzustellen. Hiermit wird geprüft, ob eine Datei. Dwt existiert, und wenn eine Datei namens. PHP.
Also, wenn Ihr Themen-Dateien sind. Php Prestashop wird sie zu berücksichtigen, aber es ist auch zu berücksichtigen Dateien übernehmen. Dwt in den Modulen, ohne dass du sie umbenennen.
Wie Sie das redirect Smarty machen?
Wir müssen die Smarty.class.php Inhalte auf den / tools / smarty / Ihre PrestaShop Shop ändern.
In Zeile 1106, müssen Sie die Display-Funktion und hinzufügen:
. $ Resource_name = substr ($ resource_name, 0, -4) '. Php';
Vorher:
Funktions-Display ($ resource_name, $ cache_id' = null, $ compile_id = null)
{
$ This-> currentTemplate = substr (basename ($ resource_name), 0, -4);
$ This-> fetch ($ resource_name, cache_id' $, $ compile_id, true);
}
Nach
Funktions-Display ($ resource_name, $ cache_id' = null, $ compile_id = null)
{
if (file_exists ($ resource_name))
. $ Resource_name = substr ($ resource_name, 0, -4) '. Php';
$ This-> currentTemplate = substr (basename ($ resource_name), 0, -4);
$ This-> fetch ($ resource_name, cache_id' $, $ compile_id, true);
}
Wir müssen uns ändern Sie dann die Funktion, um die Linie 1123 zu holen und hinzuzufügen:
. $ Resource_name = substr ($ resource_name, 0, -4) '. Php';
Vorher:
Funktion fetch ($ resource_name, $ cache_id' = null, $ compile_id = null, $ display = false)
{
static $ _cache_info = array ();
_smarty_old_error_level $ = $ this-> debug? error_reporting (): error_reporting (isset ($ this-> error_reporting)
? $ This-> error_reporting: error_reporting () & ~ E_NOTICE);
[...]
Nach:
Funktion fetch ($ resource_name, $ cache_id' = null, $ compile_id = null, $ display = false)
{
static $ _cache_info = array ();
if (file_exists ($ resource_name))
. $ Resource_name = substr ($ resource_name, 0, -4) '. Php';
_smarty_old_error_level $ = $ this-> debug? error_reporting (): error_reporting (isset ($ this-> error_reporting)
? $ This-> error_reporting: error_reporting () & ~ E_NOTICE);
[...]
Und schließlich die Funktion _smarty_include in Zeile 1854 und hinzufügen:
. $ Params ['smarty_include_tpl_file'] = substr ($ params ['smarty_include_tpl_file'], 0, -4) '. Php';
Vorher:
_smarty_include Funktion ($ params)
{
Backup-$ = $ this-> currentTemplate;
$ This-> currentTemplate = substr (basename ($ params ['smarty_include_tpl_file']), 0, -4);
[...]
Nach:
_smarty_include Funktion ($ params)
{
Backup-$ = $ this-> currentTemplate;
if (file_exists ($ params ['smarty_include_tpl_file']))
. $ Params ['smarty_include_tpl_file'] = substr ($ params ['smarty_include_tpl_file'], 0, -4) '. Php';
$ This-> currentTemplate = substr (basename ($ params ['smarty_include_tpl_file']), 0, -4);
[...]
Ihre Vorlage wird aus dem Problem hervorgehoben oben geschützt.
Im Bewusstsein, dass das skizzierte Vorgehen kompliziert ist, können wir das Verfahren für Sie ausführen. Sie können bestellen, diesen Service in unserem Shop .
4. Alternative
Eine andere Lösung könnte darin bestehen, die die Vorlagen zu bewegen, in einem Teil der Server nicht über das Internet zugänglich. Dies kann aber nur von Leuten mit einem Server in der Lage, diese (zum Beispiel ein dedizierter Server) zu tun getan werden. Es wird dann bearbeiten Sie die Konfigurationsdatei für Smarty, und geben Sie die Adresse des Ordners, um das Thema zugreifen.
5. Abschluss
Diese Lösungen können zum Schutz Ihrer Vorlage oder ein Thema Ihres Shops, das Problem haben wir hervorgehoben.
Es sollte jedoch bewusst sein, dass dies nicht bedeutet, dass Ihre Vorlage vollständig sicher ist. Sie werden nicht geschützt, wenn Sie Folgendes aufweisen:
- Ein Fehler in Ihrem Server
- einen Fehler gemacht
- oder wenn es ein Problem noch nicht aktualisiert.
- Achtung: Dein Paybox Modul für PrestaShop wird wahrscheinlich nicht sicher genug Fühlen Sie sich frei, um sich für RSS-Feeds verpassen Sie keine einzige article.Nous hatte kürzlich die Gelegenheit zu erleben, einen unserer Kunden ein Modul mit vielen Paybox Sicherheitslücken. Wir wollten unsere Leser aufmerksam machen ...
Artikel zum selben Thema:
Schlüsselwörter:
Kopie , Thema Piraten , Prestashop , zu schützen , Schablone , Flug













Ich habe auch installieren Prestashop Module. Ich möchte die Dinge ändern templete am Beispiel der Herstellung der Umbenennung Entreneurs ich will, ist, was ich kann und wenn ja wie?
Vielen Dank im Voraus.
Hallo und herzlichen Glückwunsch für diesen Posten.
Um die Plünderung der *. Dwt (ich wusste nicht, es war für diese Angelegenheit möglich) überwunden installierte ich alle Dateien von Klassen und Templates ausserhalb des / www / public-Verzeichnis-Server. Anscheinend funktioniert es. Der Server ich benutze, ist eine gemeinsame OVH.
Ich PrestaShop Installation WampServer wampmanager aber nicht ausführen kann, suche ich eure Hilfe :)
@ Cedric die Verwirrung ist, dass dies nicht der Server, der HTTP-Anfragen, sondern die Client macht.
Wenn magst du dev-Version auf Ihrem Rechner, wird der Client und der Server entsprechen der gleichen Maschine. So ein "von localhost zulassen" gut Sie öffnen den Zugang zu Ressourcen.
Aber wenn Sie segeln auf der Live-Website, ist der Kunde Ihrem PC und dem Server ist eine andere Maschine in einem Rechenzentrum. Dies sind dann zwei verschiedene Maschinen.
So kann Ihr "von localhost erlauben", wie Sie in Ihre. Htaccess erlaubt dem Server, HTTP-Anfragen an sich selbst zu machen ... das ist nur von begrenztem Interesse (wie ich schon sagte, ist es der Kunde, der Zugriffe HTTP).
@ Poulpillusion
Produktion oder dev, bedeutet localhost das Gleiche: die Maschine, wo das Skript in der Produktion läuft ... so dass dies der Server selbst ist, ich sehe nicht, wo gibt es Verwirrung?