Antworten auf deine Fragen:
Neues Thema erstellen

.php auf Server als Text ausgeben

Fidelis_jpg

Aktives Mitglied

Hallo,
ich habe folgendes Problem:

Ich habe auf meinem Webserver einen Ordner mit diversen, hochgeladenen Dateien.
Darunter befnden sich auch einige PHP-Scripte usw.
Dieser Ordner soll aber nur als Download-Ordner verfügbar sein, sprich die ganzen Scripte dort sollen nicht ausgeführt werden.
Wenn man jetzt auf eine .php geht, wird der Code ausgeführt. Was ich will, ist aber, dass der Source-Code direkt ausgegeben wird.

Gibt es dafür eine Lösung, bei der ich die .htaccess ändern kann oder irgendwelche Rechte für den Ordner vergeben kann?
Gibt es Risiken, wie der User das "hacken" kann und den Code trotzdem ausführen?
Sollte nämlich nciht soweit kommen!

Grüße, Fidelis
 

exo

Aktives Mitglied

AW: .php auf Server als Text ausgeben

Speicher die datei einfach mal als .phps ;)

Ansonsten versuche mal per htaccess folgendes zu setzen:

Code:
php_flag engine off
 

Fidelis_jpg

Aktives Mitglied

AW: .php auf Server als Text ausgeben

Hallo :)
Das mit dem .phps funktioniert gut, jetzt kann man die datei downloaden.
Was ich will ist aber, das der Code im Bowser als Text angezeigt wird. (Habe mich vllt ein bisschen falsch ausgedrückt).
Wenn ich php_flag engine off setze, bekomme ich einen Fehler 500 :(
Danke für deine Hilfe! Grüße
 

kleeaar

zwo-eins-risiko!

AW: .php auf Server als Text ausgeben

müsste so gehen:
PHP:
<?php
$handle = fopen ("index.php", "r");
while (!feof($handle)) {
    $buffer = fgets($handle, 4096);
    echo htmlspecialchars($buffer).'<br>';
}
fclose ($handle);
 ?>


sowas ist aber mit vorsicht zu genießen...
Denn so können mysql-und ftp-Passwörter, sofern sie im dokument stehen ausspioniert werden!


Grüße
 
Zuletzt bearbeitet:

CrysKey

Globtrotter

AW: .php auf Server als Text ausgeben

Hier kommt mal eine gute Antwort :p

PHP:
header('Content-Disposition: attachment; filename="DATEINAME"'); //Nur zum herunterladen
header('Content-Type: x-type/subtype'); // für den IE, Bugfix
readfile('index.php'); // die zu herunterladende Datei

Du kannst im .htaccess eine umleitung auf eine php-Datei machen, die diesen Quellcode hat oder direkt eine Datei mit diesem Code ansteuern ...
Die Datei kann sogar mit beliebigen Namen und Suffix auf dem Server liegen und mit anderen Namen und Suffix heruntergeladen werden!
 

Fidelis_jpg

Aktives Mitglied

AW: .php auf Server als Text ausgeben

Hm aber eure Vorschläge zielen ja darauf ab, die Datei auf eine Bestimmte Weise auszulesen.
Sie soll aber beim DIREKTEN, UNVERÄNDERTEN Öffnen als Text erscheinen ;)
@: Deinen Code müsste man aber auch in die Datei schreiben oder?
Grüße
 

CrysKey

Globtrotter

AW: .php auf Server als Text ausgeben

@: Deinen Code müsste man aber auch in die Datei schreiben oder?
Nein, das wäre ja gegen den Sinn der Aktion ;)

Es gibt zwei Möglichkeiten ...
Parameter übergeben:
download.php:
PHP:
header('Content-Disposition: attachment; filename="'.$_GET['q'].'"');
header('Content-Type: x-type/subtype');
readfile($_GET['q']);
und dann die Datei mit 'download.php?q=index.php' ansteuern und schon lädt man die index.php herunter ohne das diese durch den Interpreter geht!

.htaccess:
Das in die .htaccess in root reinschreiben:
Code:
RewriteEngine on
RewriteRule ^download/([0-9a-z\.]+)$ download.php?q=$1
und die download.php (wie oben) in root ablegen ... dann kann man alle Dateien, die im Ordner 'download' sind nur herunterladen!
edit:
dann noch auf das ändern: readfile('download/'.$_GET['q']);

Ich empfehle dir die 2te Möglichkeit, da man mit der ersten alles von deiner Seite herunterladen kann ;)
 
Zuletzt bearbeitet:

kleeaar

zwo-eins-risiko!

AW: .php auf Server als Text ausgeben

darf man erfahren, welchen sinn dieses direkte anzeigen von php haben soll?
für mich macht das alles keinen rechten sinn?

Grüße
 

Fidelis_jpg

Aktives Mitglied

AW: .php auf Server als Text ausgeben

darf man erfahren, welchen sinn dieses direkte anzeigen von php haben soll?
für mich macht das alles keinen rechten sinn?

Grüße

Sinn ist es, eine PHP-Datei zum Download anzubieten, diese aber nicht auszuführen. Normalerweise wird sie ja aber ausgeführt, wenn man sie direkt aufruft.
Danke CrysKey, die letzt Lösung mit dem GET-Parameter ist wohl eine gute Lösung.
Grüße, Fidelis
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.619
Beiträge
1.538.363
Mitglieder
67.540
Neuestes Mitglied
Alex Weidner
Oben