Update 3.20.0.00420 neue Variablennamen?

Fragen und Tipps & Tricks zur PHP Mailinglisten-Verwaltung SuperMailingList

Moderator: mirko

Antworten
Benutzeravatar
mirko
Beiträge: 22881
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

\"Klau\" doch die Funktion und packe diese in eine eigene PHP-Datei. Die Funktion nutzt nur die globale Variable $UserAgent, anstatt des global $UserAgent; schreibst halt einfach hin $UserAgent=\"\"; , mehr externe Funktion werden nicht verwendet, das ist alles PHP intern.

Wenn du nur ein HTTP GET machst, dann kann auch gleich die PHP-Funktion file(); verwenden, in der PHP-Konfiguration muss in dem Fall allow_url_fopen aktiviert sein.
the_scrat
Beiträge: 141
Registriert: 07.09.2010, 16:20

Beitrag von the_scrat »

Ich nutze in verschiedenen Seiten einheitlich die Funktion \"doHTTPRequest\" (functions.inc.php:Zeile 1471) um von jeder Seite saubere Einträge in der DB zu haben. Ãœber diese Funktion kommt ja alles wunderbar an. Die Funktion \"nachbauen\" kann ich ja nicht, weil innerhalb der Funktion wiederrum andere Funktionen oder Variablen aufgerufen werden, die ich zukünftig ja garnicht kennen kann.

Kannst du den Funktionsnamen \"doHTTPRequest\" ausschließen bei diesem Quellcode verschlüsseln? Dann hat man da wenigstens einen sauberen Einstiegspunkt und fertig. Alles andere kann von mir aus verschlüsselt werden.

Damit wäre mir dann auch schon geholfen.
Benutzeravatar
mirko
Beiträge: 22881
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Änderungen sind nicht erlaubt, das ist kein Open-Source-Script. Du sollst nichts an den Scripten ändern, deswegen sind die Scripte ab der 3.20 leicht verschlüsselt = Obfuscator drübergeschickt. Es kann damit nicht mehr so leicht etwas geändert werden, weil die Variablen- und Funktionsnamen total unsinnig bezeichnet sind.

Komplett verschlüsseln will ich es nicht, dazu bräuchte man einen Loader, das kann nicht jeder in seinem PHP einbauen.

Die Namen der Variablen und Funktionen werden sich mit jeder Version ändern, also nicht mehr drauf verlassen, dass eine Funktion beim nächsten Mal wieder _ododkd() irgendwie heißt.

Wenn du eigenen Code da einbauen willst, was von mir nicht gewünscht ist, dann eine eigene .inc.php z.B. in die newslettersubunsubcheck.inc.php einhängen und den Aufruf an der entsprechenden Stelle einsetzen. Ich weiss ja nicht, was du da genau aufrufst aber normalerweise sollten Aufrufe von außerhalb nicht notwendig sein, es gibt mittlerweile ne Menge Möglichkeiten eigene Scripte über die Oberfläche anzugeben.

Ebenfalls immer beachten, wenn du Aufrufe von außen machst, dann könnten einige interne Dinge nicht korrekt aktualisiert werden und damit stimmen vielleicht die Datenverbindungen in den Tabellen nicht mehr.
the_scrat
Beiträge: 141
Registriert: 07.09.2010, 16:20

Beitrag von the_scrat »

Hallo Mirko,

gerade wollte ich ein Update auf die neue Version der sml (3.20.0.00420) machen. Leider stellte ich nun fest, dass zu den Neuerungen auch gleich noch komische Variablennamen eingeführt wurden, die einen nun behindern (aber nicht verhindern) eine zusätzliche eigene Funktionalität ins Spiel zu bekommen.

Mir geht es speziell nur um eine Datei newslettersubunsubcheck.inc.php
In dieser Datei habe ich an einer einzigen Stelle einen eigenen Code eingebaut. Mit der neuen Version bekomme ich diesen Code zwar auch noch unter, aber ich lasse üblicherweise die alte Datei mit der Updatedatei vergleichen und mir so anzeigen, was sich effektiv geändert hat (UltraCompare).
Diesmal jedoch sehe ich, dass sich an vielen Stellen die Variablennamen in Werte wie $_jQL8I, $_QJ86j, $_jQljJ geändert haben.

Meine Frage, welchen Sinn macht das? Der Code ist weiterhin lesbar, aber halt nicht mehr so leicht verständlich. Auch wenn Veränderungen am Script nicht gewünscht und Supportet werden, sind sie ja generell nicht verboten. Oder?

Ich würde mich freuen, wenn du wieder die richtigen Variablennamen verwenden oder zumindest die Möglichkeits eines Hooks einbauen könntest.

Vielen Dank

edit: Diese Änderung hat leider größere Auswirkungen und zwar, dass nun garnichts mehr funktioniert, zumindest alles, was von Fremdsystemen kommt. Der bisherige Funktionsname \"DoHTTPRequest\" existiert ja nun leider nicht mehr, sondern heißt nun function _OB0DD(...) und kann deshalb auch von keinem Fremdsystem zum Transport der Newsletterdaten genutzt werden.

Lieber Mirko, ich würde dich bitten die alten Namen Variablen- und Funktionsnamen wiederherzustellen. Ich spiele nun mein altes Backup wieder ein, denn die neue Version ist zur Zeit nicht nutzbar, zumindest für alle, die mehr als nur die Standardfunktionen nutzen.
Zuletzt geändert von the_scrat am 09.02.2011, 10:45, insgesamt 2-mal geändert.
Antworten