daten verstecken durch PHP?

Sorry das ich hier was schreiben muss?

Aber du willst doch nicht ernsthaft hier sagen das du ein CMS verbreitest in dem du die Original daten deines CMS'es weiter gibst?

Also wenn du eine verbindung mit einem Server aufnimmst per PHP und es meinet wegen in sql.php erstellst dann fragst du in dem Script nur die Datei und die Werte!

Ein User von aussen kann somit die sql.php runterladen so oft er will er wird keinen Gewinn erziehlen

Den wie meine Vorredner schon sagen "PHP kodiert es" und gibt nur HTML wieder!

Wenn du ein CMS verbreitest welches wie deines fertig ist so erstelle eine sql.php - Dummy aber keines falls eine wo es daten enthält die nur dich etwas angehen ;)
 
@Lenox: ich glaub du hast mein post etwas falsch verstanden. Es geht mir darum, um den typ der die sql.php datei vom CMS besitzt. Wenn ich ihm das CMS skript "verkaufe" (nehmen wir an, ich benutze es für kommerzielle zwecke) dann will ich ja nicht, dass er durch veränderung im code sich beispielweise selbst bestimmte schlüssel hinzufügt auf der datenbank die dann explizit für lizenzen erstellt ist um weitere module für das CMS einzulesen.

du musst es dir so vorstellen:
||||||||||||||||||||||||||||||||| verkauf von CMS und grundlizenz ||||||||||||||||||||||||||||||||||||||||
ICH --------------------------------------------------------------> KÄUFER
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||< beim kauf von weiteren modulen |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DB SERVER (nur für weitere lizenzen / mein DB Server) <--------------- CMS --> DB LOCALHOST (mit allen anderen tabellen für CMS relevant)

und diese verbindung zwischen CMS und meinem DB Server soll entstehen ohne dass der käufer weiß, wie die daten zur verbindung lauten und die query funktion nicht ändern kann, wenn beispielsweise er illegalerweise sich weitere unerlaubt weitere lizenzen hinzufügt um die module durch seine zu authorisieren. weil ohne authorisierung wird das modul nicht vom CMS erkannt.
 
@hwcd

ich hab dein Problem verstanden, keine sorge ;) ich programmier mir momentan auch einiges, was ich plane an Kunden zu verkaufen. Hab mir da auch einiges an gedanken gemacht.Bin letzten Endes aber zum Schluss gekommen, dass man ausschliesslich durch Quellcodeverschlüsselung seinen Quelltext zumindest schützen kann.

Allerdings: Das wars auch schon. Du hast als Programmierer keine große Chance dein Programm durch Sicherheitsmaßnahmen und externe Abfragen vor Diebstahl zu schützen, denn du musst dir folgendes überlegen:

1.: Sicherst du dein Programm mit externen Datenbankabfragen? Nutzlos, lässt sich von jemandem, der selbst schon länger PHP Programmiert, lockerflockig umgehen, in dem er das umcodet. Da kannste als Urheber nichts machen, hab selbst n CMS gekauft, bei dem ich das zwangsweise machen MUSSTE, weil der Lizenzvergeber tagelang nicht erreichbar war und die Installation von einem Connect zum Lizenzserver abhing. Konnte ich aber umgehen.

2.: Was machste, wenn dein Server nicht erreichbar ist, z.B. weil du die Rechnungen nich bezahlt hast, jemand deinen Server gehackt hat, der Hoster Probleme hat, whatever. In dem Fall biste mächtig am , gerade dann, wenn du als Bedingung für ein lauffähiges CMS bei jedem Seitenaufruf des CMS einen Connect zu deiner Datenbank machst, der dann checkt ob die Lizenz gültig ist.

3.: verschlüsselst du dein CMS mit Zend oder Ioncube haste das problem, dass du nur Kunden nehmen kannst, die rootzugriff auf den Server haben, oder zufällig der Hoster des Kunden schon Zend/Ioncube installiert hat oder installieren wird (machen aber nur sehr wenige, wenn man meiner Erfahrung trauen darf^^)...

4.: wenn du des CMS komplett verschlüsselst, nimmste dem rechtmäßigen lizensierten Besitzer des CMS die möglichkeit selbst hand anzulegen, z.B. für eigene Modifikationen und spezielle anpassungen. Sollte man einem Käufer ja nicht verbieten, bin ich der Meinung.


Altrernativ kann man sagen: Verschlüssel die wichtigsten Programmteile deines CMS. In diesen verschlüsselten Dateien bauste einen Code ein, der die Lizenzdatei auf dem Webspace des kunden mit dem Key im verschlüsseltem Code checkt, stimmt dieser überein, checkt der code deinen Server ab und schaut, ob der Lizenzkey in deiner DB vorhanden ist und wie oft er installiert wurde. Sollte dein Server nicht erreichbar sein, checkt das script eben später nochmal, schränkt aber den Seitenbetrieb des Kunden nicht ein. eventuell bis zu 5x, sollte das Problem dann weiterhin bestehen, wird auf der Website des Kunden eine offizielle Meldung gemacht ala "Bitte überprüfen Sie die Lizenz für das CMS und setzen Sie sich mit der Firma XYZ in Verbindung". Nach 10 weiteren Checks könnte man eine die(); ausgabe machen. Erreichen kann man dass, in dem das Script sich selbst eine verschlüsselte Datei erstellt, hier hineinschreibt, wie oft er schon versucht hatte zu konnektieren. gleichzeitig MUSS er eben diese datei haben, sonst gibt er von vornherein eine die()-Ausgabe aus. Die Infos, wie oft das script versucht hat deinen Server zu connecten musste halt durch einen eigenen algorythmus so gut verstecken, dass ein Mensch dies nicht erkennen kann. beispielsweise erstellste dir einen code mit 1024 zeichen. wählst 12 zeichen an beliebiger stelle aus (die stellen dürfen nie konstant sein, sondern müssen pro installation variieren), an denen du jeweils eine Zahl des Timestamps speicherst, plus die zahl der connects die nicht erfolgreich waren. Als kleines Beispiel zur Verdeutlichung:


Code:
Dateiname: code.php
<?php
$code = '
jshzt38kkhd1tekbjh4ükjbikp1ubkj028626ßnjgjz3478k
jnasdfpösdv9sdf63nkbnjksrf9srg9sgljn24iughkljsnld
8knsef67serlkn3wß0vskdjnv763ijnklnjsdfg0982345k
897z425kjnd0skfgjhsdf97834w25rkjnsedvi7435kjnijkd
';
?>
Würde den Timestamp 1176947062 und die anzahl der vergeblichen Connect-Versuche von 04 ergeben. Sprich dein Code würde z.B. in 24 stunden nochmal einen connect versuchen, schlägt der fehl ändert dein programm den obrigen code komplett (auch die zahlen/ziffern die nicht gebraucht werden) und ersetzt die zahlen an derselben stelle wie oben gezeigt mit dem aktuellen timestamp und der anzahl der versuche mit 05 und gibt auf der Website des Besitzers die Meldung "Bitte mit der firma xyz in Konakt setzen" aus und versuchts weiter, bis letztendlich 15 versuche gescheitert sind. Dann gibts ne die()-meldung aus und das cms wär nicht mehr nutzbar.

Ich hoff, dass ich mich einfach genug ausgedrückt hab^^ falls nich, meld dich, und ich werds vielleicht mit nem erweitertem beispiel erörtern^^


Der einzige Knackpunkt ist hier natürlich wieder die Zend/Ioncube-Verschlüsselung und das Problem, dass nur wenige Server standartmäßig diese Verschlüsselungstechnik von vornherein unterstützen. Und naja, eine Zend-Lizenz zum Verschlüsseln der eigenen Scripte iss ja auch nich grad billig... Ich vermute aber mal, dass eine Kombination aus teilverschlüsselung, inkl. Zend-verschlüsseltem PHP-Code (und verschlüsseltem-Check-Code) die sicherste Methode ist, die eigene Arbeit vor Diebstahl zu schützen...
 
Danke für den langen Beitrag. Ich habe mir ihn mal sorgfälltig durchgelesen und durch dein Beispiel ist mir eine coole Idee in den Kopf gekommen wie man dies schützen könnte nur mit PHP (eventuell mit javascript etwas). Muss es erstmal ausprobieren und dann werd ich mal hier Bericht erstatten, ob es geklappt hat oder sinnlos war ^^.

Trotzdem hier mal danke an alle, die mir mit einem Beitrag helfen wollten.
 
Um Dateien zu verstecken gibt es aber auch einen ganz leichten Trick:
Die Datei:
Code:
.htaccess
vergiss bitte nicht den "." davor!
Und nun der Inhalt
Code:
IndexIgnore [datei].[end]
oder
Code:
IndexIgnore .[end]
 
Zurück