• Wir werden in den nächsten Tagen verschiedene Wartungsoperationen und Optimierungen am Server durchführen. Es wird zu mehreren Ausfällen kommen, die teilweise auch mehrere Stunden umfassen können.

how to verstecking a php code?

Joined
Dec 26, 2002
Messages
1,764
Points
0
moinsen @ all,

ich begeb mich so langsam ans php-programmieren ran und da will man ja bald auch tolle scripte basteln und ich würde nun schonmal gerne wissen, wie man den phpcode verstecken kann.
ich hab bisher von 2 methoden gelesen:

1. methode wäre den phpcode mit einem programm zu verschlüsseln(es gibt da ja ein paar kostenlose), aber habe null ahnung wie das funzt.

2. methode wäre, ich würde die datei, wo der phpcode drin ist in einem ordner abspeichern auf dem man nicht ohne bestimmte rechte draufkommt und diesen phpcode dann halt in der index.php meiner hp verlinken das er dort halt aufgerufen wird.

die 2. methode würde ich wohl gerne mal kennenlernen (wenn es überhaupt möglich ist).
wie gesagt, ich möchte meine phpcodes schützen, aber da gibts bestimmt welche die fragen: hey warum braucht der kleine noob nun schon soetwas? :D
ich sag nur, desdo früher man anfängt, desdo besser prägt es sich über die zeit ein. :)

wäre lieb wenn ihr nen script postet, was den code aus der einen datei ausliest(und am besten noch ne kleine erklärung wie der code funktioniert wäre nicht schlecht :) )


MfG Maggy
 
Das Problem versteh ich jetzt nicht ganz O_o

Wozu willste den Code verstecken?

PHP wird serverseitig interpretiert, soll heißen das jemand der nen PHP Script aufruft niemals den Code zu Gesicht bekommt, sondern nur das, was jener ausgibt. Der Code an sich gelangt garnicht an den Browser, sondern wird auf dem Webserver ausgeführt und von diesem auch in Code umgewandelt der an den Browser weitergegeben wird.

Also versteh ich nich ganz was du möchtest :o

Zum Encoden des PHP Codes gibt es zB. Zend Safeguard (was aber nich kostenlos is). Aber sowas is wie gesagt zB eigentlich nur notwendig wenn man ein Script verbreiten möchte, man den Code aber nicht zur verfügung stellen will.
 
hm, dachte man könnte irgendwie den quellcode aus der datei "herauskitzeln". also die datei downloaden und dann einfach den quellcode aufrufen.
 
Wie das? Dazu brauchst du Serverzugriffsrechte um die Dateien herunterzuladen und ansehen zu können. Keine Angst. Die Skripte, die du in nächster Zeit basteln wirst, wird dir keiner klauen :p

Du kannst zB mit deiner htaccess ein bisschen rumspielen, um einen kleinen Serverschutz zu integrieren ;)

Wie PHP funktioniert, hat Floorfilla ja schon ganz gut erklärt :top Jede Verschlüsselung ist übrigens knackbar. Gerade PHP ist durch seinen Grundaufbau nur schwer dafür geeignet seinen Code zu schützen. Wenn du das willst, sollten Java oder C die besseren Varianten sein.
 
C?
öhm ja wie das denn? o_O
und ja du sagst es ja schon, php ist schwer zu schützen. gehts also nur gut mit diesen programmen
und nunja, also wäre das eigentlich nur quatsch dei 2. methode zu benutzen oder wie?
 
Ein Programm wird beispielsweise in C geschrieben. Bevor du es aber starten kannst, musst du den Quelltext kompilieren. Die dann entstandene Form kann der PC interpretieren und ausführen. Den Quelltext an sich kann man dann aber nicht mehr ohne weiteres sehen.

PHP arbeitet dann so ungefähr:
(durch den Spoiler verzehrt das Forum nicht so :D)
PHP_funktionsweise.png
 
Last edited:
achso achso.
und nun noch die frage: braucht man das mit dem schützen des quellcodes in einem anderen ordner? und da ist mir noch ne frage eingefallen: man könnte doch dann in ein spezielles verzeichnes funktionen packen oder? nunja hatten das letztens in C und das geht doch bestimmt auch in php :)
 
Maggy said:
und ja du sagst es ja schon, PHP ist schwer zu schützen. gehts also nur gut mit diesen Programmen
Wie bereits erklärt worden ist: Solange du das Skript an sich nicht an jemanden weiter gibts, ist PHP eben nicht schwer zu schützen. Wenn ein Programm eine PHP von einem Webserver anfordert, bekommt es von diesem immer die interpretierte Datei, also zum Beispiel eine HTML Datei, von diesem zugeschickt und niemals das Skript selber.
Schwer zu schützen ist PHP nur dann, wenn du das Skript an jemanden weitergeben willst, es also zum Beispiel kommerziell vertreibst, und verhindern willst, dass dieser Jemand sich dein Skript angucken kann.
So etwas wäre zum Beispiel mit einer Programmiersprache wie C möglich (siehe Admi's Post).

Aber mal eine andere Frage: Aus welchem Grund solltest du ein PHP Skript verstecken wollen? Mal ganz abgesehen davon, dass du in nächster Zeit sowieso kein Skript schreiben kannst, was für irgendjemand so interessant wäre, dass er es von dir klauen wollte, solltest du auch bedenken, dass:
1. du ein geklautes Skript sowieso leicht erkennen würdest, wenn es auf irgendeiner fremden Homepage zu Einsatz kommt.
2. man seine eigenen Skripte auch mit anderen Menschen teilen kann ohne sich dabei irgendwie weh zu tun ;)

Edit:
braucht man das mit dem schützen des quellcodes in einem anderen ordner
Auch wenn du wie gesagt deinen Quellcode nicht schützen musst: Nein, du kannst die Dateirechte auch festlegen, ohne dass die Dateien in einem bestimmten Ordner liegen müssen.
Bei Windows: Dateien auswählen -> Rechtsklick -> Eigenschaften -> Da Irgendwo dann die Dateirechte auswählen (Sorry hab schon lange kein Windows mehr benutzt ^^)
Bei Linux / Unix (Auf Servern üblich): Dateirechte mit chmod anpassen (http://de.wikipedia.org/wiki/Chmod).
 
Last edited:
man muss ein script schützen, dass ist klar und ganz besonders scripte von anfängern, diese nutzen gerne variablen wie $_SERVER['PHP_SELF'] ( zb in einem form tag beim attribut action )

für einen angreifer schlägt da das herz höher und er macht mal eben XSS ( Cross Site Scripting ).

nunja und dann gibt es ja noch viele andere stellen, die code unsicher machen ...


der programmierer einer PHP datei muss die aufgabe des schutzes aber nicht übernehmen, wie meine vorredner schon sagten, denn PHP wird serverseitig interpretiert, weshalb es nicht nötig ist den inhalt an den browser zu übermitteln. ( im gegensatz zu JavaScript / DOM, welches cleinentseitig interpretiert wird, weshalb man es auch im quelltext wiederfindet ).

wenn du es also nicht selbst veranlasst durch deinen code, den inhalt einer datei auszugeben, dann wird dem browser auch nicht der inhalt der datei mitgeteilt.
lediglich wenn der server die endung php nicht kennt, macht es es wie bei allen anderen datein, die nur plain enthalten, er sendet sie an den browser ...

also, wenn du einen php fähigen server hast ist alles ok :)


EDIT:
PHP nutzt auch URL Wrapper, jedoch erhalten den gleichen inhalt, welchen der browser kriegt. Nicht das es dort abermals zu verwunderungen kommt ;)
 
Last edited:
ist das für mich ??

im übrigen muss man anmerken, das es von php bei den neueren versionen nicht mehr jede nutzung der SQL Injektion funktioniert, da schlicht weg ; in einer mysql_query() funktion verboten ist und es dann zu einer fehlermeldung kommt. lediglich das auslesen eines codes ist weiterhin gefährlich, da man daten zwar nicht ändern, aber mit UNION die daten, welche ausgegeben werden beeinflussen kann :> ( sprich alle befehle, die mit SELECT beginnen sind noch funktionsfähig )
 
Der Link ist für Maggy, da ihm diese Fachtermina wahrscheinlich nichts sagen werden.
 
ich hab mich schon gewundert, was ich damit anfangen soll ^^ ( so macht es auch sinn, mist, es ist schon zu spät .. )

EDIT:
ich hab hier gerade beim surven ein gutes beispiel gefunden ( da man hier nix kaputt machen kann, aber das prinzip sieht ist es sehr gut )

http://www.klickundkoch.de/rezept.php?id=2

id wird zwar korrekt bearbeitet, jedoch nur zu hälfte, sprich es wird warscheinlich mysql_real_escape_string() verwendet ( oder etwas ähnliches, wie addslashes() ) da ' zu \' wird, jedoch kann man html befehle einschläusen, diese benötigen sowas nicht.

setze ich jetzt anstelle von 2
HTML:
<script>alert(2)</script>

wird dieser code ausgeführt, d.h. er wurde nicht gefilter / validiert und wenn ich ähnliches bei einem feld machen würde, wo man etwas eintragen könnte wäre diese seite jetzt sogar angreifbar ( gut das hier aber immer eine sandbox drum liegt, sonst segelt fast jede inetseite ab ... denn die sandbox verbeitet das bearbeiten von anderen datein etc, wodurch man mit dem möglichen schaden per javascript eingeschränkt wird, was auch gut so ist ).
 
Last edited:
Back
Top Bottom