Hallo Gemeinde der internationalen Computermanipulation,
ein paar Tage lang habe ich mich jetzt mal mit javascript und Sicherheit, bzw. Kopierschutz des JS, beschäftigt. Den Quelltext zu verbergen ist zwar erlaubt, halte ich aber auch für unsinnig. Berechtigt ist aber wohl das Interesse, seinen mühsam erstellten JS-Code schützen zu wollen. Auf "stackoverflow" habe ich auch etwas gefunden, was zu funktionieren scheint, habe aber auch selbst mal experimentiert. Heraus kam folgendes, wozu ich, als unstudierter Otto-Normal-Manipulierer, gern die Meinung der Insider-Profis (Gunnar, Rolf B, Martin, ...?) lesen würde.
Codes sind auf das Wesentliche beschränkt.
index.php:
<?php
session_start();
$_SESSION["erlaubnis"]=1;
...
echo"<div id='inhalt'></div>";
...
echo"<script src='dummy.js'></script>";
?>
dummy.js:
$(function(){
$("#inhalt").load("inhalt.php");
});
inhalt.php:
<?php
session_start();
if(isset($_SESSION["erlaubnis"])){
unset($_SESSION["erlaubnis"]);
...
code
...
echo"<script src='inhalt.js'></script>";
// (in inhalt.js ist der zu verbergende JS-Code enthalten)
}
?>
inhalt.js: (komplett zu verbergen; als Dateinamen sollte man einen schwer zu erratenden wählen)
$(function(){
...
code
...
$("#inhalt script").attr("src","was auch immer fürn Name");
// (Adresse der JS-Datei verschleiern)
});
Das scheint zu funktionieren. Im Quelltext erscheint zwar die dummy.js und kann auch angeklickt werden. Und man sieht, was darin steht (siehe oben). Kommt nun jemand auf die Idee, die inhalt.php direkt über die Adresszeile
aufrufen zu wollen, wird dies durch die $_SESSION["erlaubnis"]
verhindert. Im Inspektor (Webentwicklerwerkzeuge) erscheint der Pseudoname "was auch immer fürn Name".
Nach einem Aktualisieren der Seite, z.B. mit "F5", wird erstmal wieder die $_SESSION["erlaubnis"]
gesetzt, um das Laden der inhalt.php zu ermöglichen.
Hat man javascript im Browser deaktiviert, läuft die Seite garnicht.
Ich weiss nicht, habe ich etwas übersehen? Wie gesagt, es scheint zu funktionieren.
LG Treziman
Ich wurde als deprecated gekennzeichnet und werde alsbald nicht mehr unterstützt...