php dateien schützen und trotzdem as3 den zugriff drauf ermöglichen
Hi,
ich versuche gerade meine php dateien zu schützen. Ich hab eine flashseite diese befindet sich in einem order beep und in beep/php sind alle php dateien .
in dem php ordner beep/php hab ich eine .htaccess angelegt mit folgendem Inhalt:
ActionScript:
1
Deny from all
funktioniert auch so wie es soll also kein zugriff von aussen direkt auf die php dateien.
Das Problem ist jedoch dass die flasheite auch keinen zugriff auf die php dateien hat und somit die scripte nicht ausgeführt werden können. Ich dachte eigentlich das die swf datei die sich ja auf derm server befindet sich auch als internes element verhält aber offensichtlich bewirkt der zugriff von der swf auf die php dateien den gleichen effekt wie der zugriff von aussen.
Nun meine frage wie könnte ich dieses problem lösen?
[Falls möglich mit codebeispiel]
Könnte man z.b deny from all machen ausser von der "../index.swf" ?
Beiträge: 2855 Wohnort: Köln Registriert: Oct 2007
Hallo,
du machst einen Denkfehler:
Flash wird auf dem Rechner des Besuchers ausgeführt und somit ist die Anfrage nicht von der Datei "../indes.swf".
Es ist nicht möglich zu unterscheiden ob der Request jetzt von der SWF-Datei oder direkt vom Browser kommt - zumindest kannst du deine Bemühungen mit htaccess einstellen.
Eine Möglichkeit besteht darin, eine "Sicherungsvariable" oder soetwas zu übergeben. ZB dass du beim Aufrufen der Seite in PHP eine Zahlenfolge generierst und diese dann an Flash übergibst und in PHP speicherst. Immer wenn jetzt Flash ein Aufruf startet, übergibst du diese Variable und überprüfst ob diese mit der gespeicherten übereinstimmt - somit kann zwar jeder der auf der Flash Seite war auch über den Browser die PHP-Dateien dierekt aufrufen, aber andere Nutzer nicht, da eine Session ja standardmäßig nach 30 min aubgelaufen ist.public Weltformel(Problem){
if (Problem gelöst) return Lösung;
else Weltformel(kleiners Problem);
}
ich hab die htaccess mit deny from all in dem php ordner, somit sind diese dateien absolut sicher.
danach hab im hauptordner eine weitere umleitungs.php geschrieben die ein include befehle enthält welches auf den geschützten php ordner zugreift.
Somit kann flash auf die geschützen php daten zugreifen und nur von der flash bzw swf datei
Da Include sehr leicht zu missbrauchen ist hab ich zusätzlich ein abfrage gesetzt die überprüft ob die übergebene variable(diese variable besteht nur einem dem pfad der zu der entsprechenden php datei im geschüttzen ordner führt) mit dem inhalt eines vordefinierten array übereinstimmt erst dann und nur dann kommt es zu include.
Weiterhin kann der angreifer einfach eine akzeptable variable die innerhalb des array existiert verwenden und gleichzeitig die restlichen übergebenen variablen manipulieren. Deshalb bin jetzt dabei alle übergebene variablen mit einem key zu verschlüsseln an php zu senden diese mit dem gleichen zu entschlüsseln usw...
so besteht keine möglichkeit für den angreifer irgendwas zu manipulieren sofern er den key nicht kennt
Beiträge: 2855 Wohnort: Köln Registriert: Oct 2007
Und wo ist des Array mit den keys? In der SWF-Datei. Also musst du ein Programm zum verschlüsseln des Codes verwenden, da ja jeder eine SWF-Datei Kinderleicht dekompilieren kann und sonst an den Schlüssel kommt.public Weltformel(Problem){
if (Problem gelöst) return Lösung;
else Weltformel(kleiners Problem);
}