Verschlüsselung mit IonCube


Empfehlungen für die Verschlüsselung von Plugins mit IonCube.

Mit Einzug von PHP 7.1 und 7.2 ergeben sich notwendige Änderungen an der IonCube Verschlüsselung für Ihre Plugins.

Um weiterhin Plugins mit IonCube zu verschlüsseln wird mindestens der IonCube Encoder 10.2 benötigt um die "Bundle" Funktion zu nutzen.

Durch die grundlegenden Änderungen in PHP benötigen PHP 7.2 kompatible verschlüsselte Dateien eine andere Verschlüsselung als PHP 5.6-7.1, folglich muss nun die Bundle Funktion in IonCube verwendet werden um 2 unterschiedliche Verschlüsselung zu kombinieren.

Ohne diese Bundle Funktion müssten ansonsten 2 verschiedene Downloads für jedes Plugin angeboten werden (einmal mit ioncube_encoder.sh -56 und einmal mit ioncube_encoder.sh -71) um PHP 5.6-7.2 abzudecken.

Änderung an Ihrer bisherigen Verschlüsselungsfunktion:

Prinzipiell muss nun zwei mal eine Verschlüsselung durchgeführt werden, im ersten Durchlauf mit der Option

ioncube_encoder.sh -56 --bundle

Sollte bereits --replace-target verwendet werden, so muss dies entfernt werden (–bundle ersetzt ebenfalls alle Dateim in Target Directory)

und im zweiten Durchlauf mit

ioncube_encoder.sh -71 --add-to-bundle

IonCube fügt nun in Ihren verschlüsselten Dateien jeweils einen Block für die unterschiedlichen PHP Versionen ein.

Weitere Informationen zur Bundle Funktion finden Sie im IonCube User Guide (Abschnitt 3.14)


Prüfung auf xt:Commerce Lizenzkey

Bei Plugins empfehlen wir statt der Lizenzierung auf IP,Domain oder Mac, diese an die xt:Commerce Lizenznummer zu binden.

Hierzu kann im Plugin folgender Code verwendet werden:

if (!function_exists('ioncube_license_properties')) {
	$lic_parms = array();
} else {
	$lic_parms = ioncube_license_properties();
}
if (isset($lic_parms['LICENSEKEY']['value'])) {
	$_lic = _SRV_WEBROOT . 'lic/license.txt';
	if (!file_exists($_lic))
		die('- main lic missing -');
	$val_line = '';
	$bline = '';
	$_file_content = file($_lic);
	foreach ($_file_content as $bline_num => $bline) {
		if (strpos($bline, 'key:', 0) !== FALSE) {
			$val_line = $bline;
			break;
		}
	}
	$val_line = explode(':', $val_line);
	$_shop_lic = '';
	$_shop_lic = trim($val_line[1]);
	unset($val_line);
	unset($_lic);
	
	if ($_shop_lic != md5($lic_parms['LICENSEKEY']['value']))
		die('- Plugin license not matching, contact support -');
}

Fügen Sie hierzu Ihrem Plugin bei der Verschlüsselung eine Property LICENSEKEY hinzu.

Support
Shop Support: Support zum Shop und anderen
Produkten von xt:Commerce.

Fehler melden
Report a Bug: Fehler gefunden?
Informieren Sie uns.

xt:Commerce Marketplace
Plugins & Templates: Über 500 Möglichkeiten in unserem
Store zur Shop-Optimierung.

xt:Commerce Service Team
Services: Wir übernehmen individuelle
Anpassungen für Ihren Shop.

Impressum