• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[PHP] per fwrite erstellte Dateien nicht lesbar

lowflyer7

Cripps Pink
Registriert
29.01.08
Beiträge
154
Hallo zusammen,

ich habe das Problem, dass scheinbar Dateien auf meinem Server irgendwie anders erstellt werden, als lokal auf meinem Mac unter MAMP. Der Schreibbefehl ist identisch.

Code:
[COLOR=#889AB5]$file [/COLOR][COLOR=#D7B67C]= [/COLOR][COLOR=#E1D797]fopen[/COLOR][COLOR=#F9F9F9]([/COLOR][COLOR=#889AB5]$_GET[/COLOR][COLOR=#D7B67C][[/COLOR][COLOR=#A0AB7D]"gp"[/COLOR][COLOR=#D7B67C]][/COLOR][COLOR=#F9F9F9].[/COLOR][COLOR=#A0AB7D]'/'[/COLOR][COLOR=#F9F9F9].[/COLOR][COLOR=#889AB5]$_GET[/COLOR][COLOR=#D7B67C][[/COLOR][COLOR=#A0AB7D]"gpfile"[/COLOR][COLOR=#D7B67C]][/COLOR][COLOR=#F9F9F9],[/COLOR][COLOR=#A0AB7D]"w+"[/COLOR][COLOR=#f9f9f9]);
[/COLOR][COLOR=#A0AB7D][COLOR=#e1d797]fwrite[/COLOR][COLOR=#f9f9f9]([/COLOR][COLOR=#889ab5]$file[/COLOR][COLOR=#f9f9f9],[/COLOR][COLOR=#889ab5]$_POST[/COLOR][COLOR=#d7b67c][[/COLOR]"filecontent"[COLOR=#d7b67c]]);[/COLOR][COLOR=#f9f9f9]
[/COLOR][COLOR=#E1D797]fclose[/COLOR][COLOR=#F9F9F9]([/COLOR][COLOR=#889AB5]$file;[/COLOR][/COLOR]

Und dennoch habe ich öfters Probleme, dass ich die Dateien nicht wie gewünscht weiterverarbeiten kann, wenn sie von dem einen System erzeugt wurden, aber auf dem anderen gelesen werden sollen.

Interessanterweise werden sie auch im Finder anders dargestellt:

Bildschirmfoto 2013-04-23 um 13.32.55.png

Die einen werden als ausführbare Unix-Datei erkannt, die anderen als Document.

Könnt Ihr mir bitte kurz auf die Sprünge helfen, wie ich das Problem umschiffen kann?

Vielen Dank!
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Code:
[COLOR=#889AB5]$file [/COLOR][COLOR=#D7B67C]= [/COLOR][COLOR=#E1D797]fopen[/COLOR][COLOR=#F9F9F9]([/COLOR][COLOR=#889AB5]$_GET[/COLOR][COLOR=#D7B67C][[/COLOR][COLOR=#A0AB7D]"gp"[/COLOR][COLOR=#D7B67C]][/COLOR][COLOR=#F9F9F9].[/COLOR][COLOR=#A0AB7D]'/'[/COLOR][COLOR=#F9F9F9].[/COLOR][COLOR=#889AB5]$_GET[/COLOR][COLOR=#D7B67C][[/COLOR][COLOR=#A0AB7D]"gpfile"[/COLOR][COLOR=#D7B67C]][/COLOR][COLOR=#F9F9F9],[/COLOR][COLOR=#A0AB7D]"w+"[/COLOR][COLOR=#f9f9f9]);[/COLOR]
Ist das ein Scherz oder führst Du das tatsächlich aus? Wenn letzteres: Prost Mahlzeit.
 

__struct

Jonagold
Registriert
11.04.13
Beiträge
20
Hi,

der Nutzer sollte lediglich das Recht haben den Dateinamen zu üergeben wobei auch hier ordentlich gefiltert werden muss. Dateinamen auf a-zA-Z0-9-_ beschränken und ".." in "." umwandeln.

Daneben muss bedacht werden das aus "<.<." nach entfernen der ungültigen Zeichen (<) ein ".." wird.

Dateiendungen wie .gp.php bedenken.

Dein Beispiel erstellt eine Datei sofern sie nicht gefunden wird "w+". Gebe ich als GET dateiname.gp.php ein wird die Datei erzeugt und ich kann mein php reinkritzeln.

Über den Pfad bzw. ../ kann ich dann das ganze Dateisystem durchwühlen.
 

__struct

Jonagold
Registriert
11.04.13
Beiträge
20
Sein eigentliches Problem liegt wohl darin das es zwei Dateitypen gibt die als Endung gp haben. Einmal eine "geo"-datei und einmal eine Haskell Binary.
 

lowflyer7

Cripps Pink
Registriert
29.01.08
Beiträge
154
Dateiendungen wie .gp.php bedenken.


Das stimmt. Irgendwie hab ich soweit überhaupt nicht gedacht. Ich bin zwar der einzige, der das Skript benutzt, aber es ist einfach eine unnötige Sicherheitslücke. Ich ändere das entsprechend.

Was mein eigentliches Problem angeht, so funktioniert es jetzt merkwürdigerweise. Insofern akzeptiere ich es erst einmal so. Falls das Problem wieder auftritt, melde ich mich noch mal.

Erst mal vielen Dank für die konstruktiven Tipps.