Antworten auf deine Fragen:
Neues Thema erstellen

Verhindern das PHP datei runtergeladen werden kann

P

pname

Guest

Wie kann ich verhindern das eine PHP vom FTP heruntergeladen werden kann?

Meine Lage:

Ich benutze Wordpress, und haben ein Random Hintergrund bild was ständig wechselt.

Um das umzusetzen hatte ich mir eine rotate.php runtergeladen die die Bilder aufruft.

Mache ich nun einen rechtsklick auf das hintergrundbild so will er immer die rotate.php runterladen.

Genau das will ich verhindern, dann soll man lieber garnichts runterladen können. Oder in diesem Ordner die dateien zum download blocken.


Frage: Wie ist sowas möglich?

Danke :)
 

m_c

Nicht mehr ganz neu hier

AW: Verhindern das PHP datei runtergeladen werden kann

...Frage: Wie ist sowas möglich?...
Gar nicht. Außerdem wird nicht die Original-PHP angeboten,. sondern das Hintergrundbild oder eine HTML-Datei mit Link auf die Hintergrunddatei. Das was angezeigt, kann man sich speichern/kopieren, wie man will.
 

Duddle

Posting-Frequenz: 14µHz

AW: Verhindern das PHP datei runtergeladen werden kann

Das kommt darauf an, wie dein rotate.php aussieht. Entweder kopierst du das hier mal rein (in [PHP ]-Tags) oder verlinkst dahin wo du es gefunden hast.

Es gibt mehrere Ansätze: du kannst so tun, als ob du auf ein Bild verlinkst, aber intern leitet er auf rotate.php um. Das wäre ein Fall für .htaccess und mod_rewrite, falls du Apache als Webserver hast. Alternativ kannst du mit ein paar Header-Anweisungen dem Browser das Zufallsbild als ein solches mit einem vorgegebenen Namen übersenden, siehe folgendes Beispiel:
PHP:
<?php
$bilder = array('a.jpg', 'b.jpg');
$bild = $bilder[rand(0,1)];

header("Content-Type: image/jpeg");
header("Content-Length: " .(string)(filesize($bild)) );
header('Content-Disposition: attachment; filename="angezeigterName.jpg"');
readfile($bild);
?>


Duddle
 

Tannhaeuser

Stadtdurchstreifer

AW: Verhindern das PHP datei runtergeladen werden kann

Hi,
ich habe auch schon eine rotate.php auf einer Webseite eingesetzt. Eben noch einmal ausprobiert was passiert:
Wenn ich im Browser anklicke "Datei speichern unter", wird die Datei gespeichert und in einem Ordner alle auf der Seite vorhandenen Dateien. Das durch die rotate.php ausgewählte Bild heißt dann rotate.jpg.
Ich hatte mich damals sehr gefreut, dass sich jemand die Arbeit der Programmierung gemacht hatte und dann noch das Script kostenlos zur Verfügung gestellt hat. Hier das von mir eingesetzte Script:

PHP:
<?php

/*

        AUTOMATIC IMAGE ROTATOR
        Version 2.2 - December 4, 2003
        Copyright (c) 2002-2003 Dan P. Benjamin, Automatic, Ltd.
        All Rights Reserved.

        http://www.hiveware.com/imagerotator.php

        http://www.automaticlabs.com/


        DISCLAIMER
        Automatic, Ltd. makes no representations or warranties about
        the suitability of the software, either express or
        implied, including but not limited to the implied
        warranties of merchantability, fitness for a particular
        purpose, or non-infringement. Dan P. Benjamin and Automatic, Ltd.
        shall not be liable for any damages suffered by licensee
        as a result of using, modifying or distributing this
        software or its derivatives.


        ABOUT
        This PHP script will randomly select an image file from a
        folder of images on your webserver.  You can then link to it
        as you would any standard image file and you'll see a random
        image each time you reload.

        When you want to add or remove images from the rotation-pool,
        just add or remove them from the image rotation folder.


        VERSION CHANGES
        Version 1.0
                - Release version

        Version 1.5
                - Tweaked a few boring bugs

        Version 2.0
                - Complete rewrite from the ground-up
                - Made it clearer where to make modifications
                - Made it easier to specify/change the rotation-folder
                - Made it easier to specify/change supported image types
                - Wrote better instructions and info (you're them reading now)
                - Significant speed improvements
                - More error checking
                - Cleaner code (albeit more PHP-specific)
                - Better/faster random number generation and file-type parsing
                - Added a feature where the image to display can be specified
                - Added a cool feature where, if an error occurs (such as no
                  images being found in the specified folder) *and* you're
                  lucky enough to have the GD libraries compiled into PHP on
                  your webserver, we generate a replacement "error image" on
                  the fly.

    Version 2.1
        - Updated a potential security flaw when value-matching
          filenames

    Version 2.2
        - Updated a few more potential security issues
        - Optimized the code a bit.
        - Expanded the doc for adding new mime/image types.

        Thanks to faithful ALA reader Justin Greer for
        lots of good tips and solid code contribution!


        INSTRUCTIONS
        1. Modify the $folder setting in the configuration section below.
        2. Add image types if needed (most users can ignore that part).
        3. Upload this file (rotate.php) to your webserver.  I recommend
           uploading it to the same folder as your images.
        4. Link to the file as you would any normal image file, like this:

                        <img src="http://example.com/rotate.php">

        5. You can also specify the image to display like this:

                        <img src="http://example.com/rotate.php?img=gorilla.jpg">

                This would specify that an image named "gorilla.jpg" located
                in the image-rotation folder should be displayed.

        That's it, you're done.

*/




/* ------------------------- CONFIGURATION -----------------------


        Set $folder to the full path to the location of your images.
        For example: $folder = '/user/me/example.com/images/';
        If the rotate.php file will be in the same folder as your
        images then you should leave it set to $folder = '.';

*/


        $folder = '.';


/*

        Most users can safely ignore this part.  If you're a programmer,
        keep reading, if not, you're done.  Go get some coffee.

         If you'd like to enable additional image types other than
        gif, jpg, and png, add a duplicate line to the section below
        for the new image type.

        Add the new file-type, single-quoted, inside brackets.

        Add the mime-type to be sent to the browser, also single-quoted,
        after the equal sign.

        For example:

        PDF Files:

                $extList['pdf'] = 'application/pdf';

    CSS Files:

        $extList['css'] = 'text/css';

    You can even serve up random HTML files:

            $extList['html'] = 'text/html';
            $extList['htm'] = 'text/html';

    Just be sure your mime-type definition is correct!

*/

    $extList = array();
        $extList['gif'] = 'image/gif';
        $extList['jpg'] = 'image/jpeg';
        $extList['jpeg'] = 'image/jpeg';
        $extList['png'] = 'image/png';


// You don't need to edit anything after this point.


// --------------------- END CONFIGURATION -----------------------

$img = null;

if (substr($folder,-1) != '/') {
        $folder = $folder.'/';
}

if (isset($_GET['img'])) {
        $imageInfo = pathinfo($_GET['img']);
        if (
            isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
        file_exists( $folder.$imageInfo['basename'] )
    ) {
                $img = $folder.$imageInfo['basename'];
        }
} else {
        $fileList = array();
        $handle = opendir($folder);
        while ( false !== ( $file = readdir($handle) ) ) {
                $file_info = pathinfo($file);
                if (
                    isset( $extList[ strtolower( $file_info['extension'] ) ] )
                ) {
                        $fileList[] = $file;
                }
        }
        closedir($handle);

        if (count($fileList) > 0) {
                $imageNumber = time() % count($fileList);
                $img = $folder.$fileList[$imageNumber];
        }
}

if ($img!=null) {
        $imageInfo = pathinfo($img);
        $contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
        header ($contentType);
        readfile($img);
} else {
        if ( function_exists('imagecreate') ) {
                header ("Content-type: image/png");
                $im = @imagecreate (100, 100)
                    or die ("Cannot initialize new GD image stream");
                $background_color = imagecolorallocate ($im, 255, 255, 255);
                $text_color = imagecolorallocate ($im, 0,0,0);
                imagestring ($im, 2, 5, 5,  "IMAGE ERROR", $text_color);
                imagepng ($im);
                imagedestroy($im);
        }
}

?>
 
Zuletzt bearbeitet von einem Moderator:
J

jeffglennfox

Guest

AW: Verhindern das PHP datei runtergeladen werden kann

Wie kann ich verhindern das eine PHP vom FTP heruntergeladen werden kann?

Indem Du Deine Zugangsdaten für Deinen FTP-Zugang nicht öffentlich machst. Dass heisst nichts anderes als:

Eine PHP-Datei wird auf dem Server ausgeführt und das Ergebnis an den Browser zurückgegeben. Ganz im Gegensatz z.B. zu einer normalen HTML- oder CSS, oder Javascript-Datei, bei denen der Code direkt an den PC, das Tablet, das Mobilephone gesendet wird und in deren Browser ausgeführt/verarbeitet wird. Deswegen kann der PHP-Code nicht so ohne weiteres heruntergeladen werden, da der Browser nur das verarbeitete Ergebnis dessen bekommt, was auf dem Server an PHP-Code ausgeführt wurde.

Die Datei wird auch nicht vom FTP heruntergeladen sondern wenn überhaupt vom Server mittels FTP (dem File Transfer Protocol), mit dem Du üblicherweise Dateien auf den Server hoch- oder auch runterlädst.

Also in Ergebnis, wenn auch etwas ausführlicher, beantworte ich Deine Frage mit dem ,was auch schon "m_c" kurz und knackig gesagt hat:

Gar nicht. Außerdem wird nicht die Original-PHP angeboten,. sondern das Hintergrundbild oder eine HTML-Datei mit Link auf die Hintergrunddatei. Das was angezeigt wird, kann man sich speichern/kopieren, wie man will.

Ich hoffe, ich konnte Dir mit meinem ersten Beitrag in Ergänzung zu dem bereits Gesagtem hoffentlich ein wenig weiterhelfen. Ansonsten frag einfach weiter nach, wenn Dir etwas unklar ist.

Gruss von

Markus
 
Zuletzt bearbeitet von einem Moderator:

Tannhaeuser

Stadtdurchstreifer

AW: Verhindern das PHP datei runtergeladen werden kann

Noch eine kleine Ergänzung zu meinen Ausführungen von Gestern: die Bilddatei heißt rotate.php.jpg (gestern hatte ich das .php nicht aufgeführt). Es wir auf keinen Fall die rotate.php bei "rechtklick" gespeichert, sondern das Ergebnis. Wenn ich Deine Frage richtig verstehe, möchtest Du den Download Deiner Bilder verhindern? Hier noch einmal der Ablauf in Screenshots:

Es ist deutlich zu sehen, dass das durch die rotate.php angezeigte Bild heruntergeladen wird.
 
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

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.476
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben