Copyright-Hinweis dauerhaft schützen

So, der Test lief ganz gut, hier mal etwas Code zur Demonstration:
template.php
PHP:
echo 'This is a test<br>';
echo 'Another test<br>';
makescript.php
PHP:
<?php
$file=fopen("template.php","r");
$script=fread($file,filesize("template.php"));
fclose($file);
$script=base64_encode($script);
$file=fopen("test.php","w");
fwrite($file,'<?php'."\r\n".'$script=base64_decode("'.$script.'");'."\r\n".'eval($script);'."\r\n".'?>');
fclose($file);
?>
Und so sieht dann test.php aus:
PHP:
<?php

$script=base64_decode("ZWNobyAnVGhpcyBpcyBhIHRlc3Q8YnI+JzsKZWNobyAnQW5vdGhlciB0ZXN0PGJyPic7");

eval($script);

?>
Die Ausgabe von test.php ist wie erwartet:
Code:
This is a test
Another test
Wie gesagt, das ist natuerlich auch nichts wirklich wirksames.
Man kann statt eval() einfach echo nutzen und schon sieht man den auszufuehrenden Code.
Aber ich denke, dass ein in dieser Art encodierter Code (der Code ist nicht verschluesselt) zumindest ein wenig Abschreckend wirken koennte.
Man koennte das auch noch weiterfuehren und jede einzelne Code-Zeile so darstellen.
Dadurch wird test.php laenger und sieht noch cryptischer aus.
 
Es gibt natürlich auch noch den Zend Encoder. Allerdings gibt es zwei gewichtige Gegenargumente. Erstens der Preis (knapp 1000 Dollar) und zweitens ist der Code nicht auf jedem System zu nutzen, da der Zend Optimizer auch auf dem System installiert sein muss.
 
@Dennis: kann man es jetzt noch so einrichten, dass bei der Ausgabe geprüft wird, ob der Hinweis dasteht, oder ob der gelöscht wurde und dann eben ne Meldung ausgeben?
 
Das koennte ueber den Output Buffer gemacht werden.
Vor eval() startest Du das Buffering mit ob_start().
Danach holst Du den Conten mit ob_get_contents() und beendest mit ob_end_clean().
Du hast dann die ganze Ausgabe in einer Variable, diese ueberpruefst Du auf Deinen Vermerk. Ist dieser vorhanden gibst Du einfach die Variable aus, ansonsten den Warnhinweis.
 
Mal ne andere Frage: du machst für jemanden Gratis diese Sache.... und musst dann noch Angst haben, dass er den Hinweis entfernt :confused:
Da stellen sich ein paar Fragen auf:
  • Warum machst du das(kostenlos)
  • Warum musst du bei jemandem, für den du das kostenlos machst, Angst haben, dass derjenige den Hinweis entfernt? idRsind das Bekannte/Verwandte/Freunde.... hast du so schlechten Umgang :(

Wenn du erwartest, dass derjenige den Hinweis entfernt, hätte ich noch einen anderen Vorschlag:
Prüfe, ob dein Text noch drinnen ist.... wenn nicht, leite zu einem anderen Skript weiter, welches dir ne Hinweismail schickt und die ganze Sache löscht.:-)

Dann muss der Gegenüber(vorrausgesetzt, er hat die Dateien noch in Reserve)...sie erst wieder hochladen...in der Zwischenzeit kannst du ihm schonmal mitteilen, dass er dein Urheberrecht verletzt hat, und dass er dies gefälligst unterlassen soll;-]
 
@Denis: ich versteh zwar den Anfang, mit ob_start(), aber dann das mit der Variablen nicht mehr :(
Wie meinst du das? Wie kann ich das dann hinschreiben?

@Sven: der Freund braucht den Newsletter für unsere Schulhomepage. Da kann ich wohl nichts verlangen, aber ich will wenigstens meine Homepage verlinken :)
 
Ungefaehr so:
PHP:
ob_start();
eval($script);
$output=ob_get_contents();
ob_end_clean();
if (strpos($output,"Mein Copyright")!=false)
{
 echo $output;
}
else
{
 echo 'Das Copyright wurde unberechtigt entfernt.';
}

Uebrigens, ich werd mit 2 n geschrieben. ;)
 
so, hab jetzt alles eingebaut.
Jetzt klappt es soweit, nur eine Frage:
muss ich bei dem
PHP:
if (strpos($output,"Mein Copyright")!=false)
dann anstelle des "Mein Copyright" genau das eingeben, was ich im template beim echo"..." eingegeben habe?

ansonsten klappts aber bisher

;-)
danke dennis
 
Zuletzt bearbeitet:
Hast Du vielleicht <?php und ?> in den Code gepackt der encodet wird?
Das gehoert da nicht rein, sondern nur die Befehle.
Wie oben in meinem Beispiel. Die template.php da oben ist wirklich alles was in der Datei steht.
 
jup, ok, klar jetzt...
stega hat gesagt.:
so, hab jetzt alles eingebaut.
Jetzt klappt es soweit, nur eine Frage:
muss ich bei dem
PHP-Code:
if (strpos($output,"Mein Copyright")!=false)

dann anstelle des "Mein Copyright" genau das eingeben, was ich im template beim echo"..." eingegeben habe?

ansonsten klappts aber bisher


danke dennis
 
Zurück