Bild-Schutz durch Datei

Einen schönen guten Abend,

ich habe folgendes Problem:

Ich möchte ein Bild (jpeg) schützen und setzte aus diesem Grund eine Datei dazwischen, die das Bild dann lädt.

Beispiel:
<img src="image.php?id=3"> anstatt <img src="bild.jpg">

Die Umsätzung sieht bis jetzt, wie folgt aus:

PHP:
$handle = fopen ($image, "rb");
echo $contents = fread ($handle, filesize ($image));
fclose ($handle);

Jedoch liefert mir das Script nur einen Kauderwelsch, wie ":Ù<n7:¦ƒÎk„Š4`?j8˪^yå9\ƒ†µ¥\³¦òVUg AâÓøÖ‰nQìG+„¼À" (Binärcode?)

Danke.
 
Ich möchte ein Bild (jpeg) schützen

Wovor schützen? Willst du das Bild auf einer Webseite angezeigen lassen, so dass es nicht kopiert werden kann?

Ist deine Absicht? Dann vergiss es. Wirst du nie schaffen. Alle "Tricks", die es gibt haben für die "normalen" Nutzer bestenfalls nervige Nachteile während der notorische Bilderklauer schlicht zum Screenshot greift...


Aber vielleicht hab ich dich auch falsch verstanden. Was dein Code bewirken soll, habe ich nicht so recht begriffen.
 
Um dein Problem zu lösen musst du einen gültigen Header liefern.
Dieser vor der Ausgabe des Bildes in image.php senden.

Aber wie gesagt wurde und ich ebenfalls der Meinung bin, schützt das nicht.
Selbst Captchas werden per OCR ausgelesen, Leute die Bilder haben wollen, kriegen diese.
 
Es geht um den Aufbau einer Bildagentur... Es geht um ein ca. 100 Pixel breites Bild. Wer möchte dieses bitte klauen? Die größeren Vorschau-Bilder werden durch ein Wasserzeichen zumindest so gekennzeichnet, dass man sieht, dass Sie von uns sind...

Die Datei ermöglicht außerdem, dass ein direktes Verlinken nicht möglich ist, da eine Variablen-Abfrage eingebaut ist...

Aber danke für die Kritik.

Der Plan war eigentlich den Ordner, in dem die Bilder lagern nochmals durch einen wirren Ordernamen, wie beispielsweise: "fsdilgfslifbsdl" zu verstecken. Wie schätzt Ihr das ein? Könnte das funktionieren?
 
Zuletzt bearbeitet:
Du müsstest einen [phpf]header[/phpf] übermitteln, der zum Typ des Bildes passt.

Also z. B.:

PHP:
header('Content-Type: image/jpeg');
 
Danke. Mit dem header() funktioniert es...

Die Kombination aus Datei und wirrem Ordnername: Wie sicher schätzt Ihr das ein?

Könnte man eventuell zusätzlich noch eine ".htaccess"-Datei einbauen? Bringt das überhaupt was?
 
Nein, alles was dem User ausgegeben wird, kann er per Rechtsklick speichern, ob nun aus dem Netz oder dem Browserinternen Cache. Das macht keinen großen Unterschied.
 
Eine Frage noch:

ich definiere bevor es zu <img src="bild.php?id=1"> kommt eine Konstante. Und in der bild.php, wird nach dieser gefragt und in sofern diese nicht gegeben ist, kommt es zu einer Fehlermeldung.

Jetzt habe ich allerdings irgendwie das Problem, dass die Konstante durch <img src="bild.php?id=1"> nicht übergeben wird. Wie schaffe ich das?
 
Konstanten, also DEFINE(KONSTANTE, 1000); gelten nur zur Laufzeit eines Scriptes.
Mit dem Aufruf der bild.php wird eine neue "PHP Instanz" gestartet.

Entweder du gibts die Konstante über SESSIONS weiter oder was wahrscheinlich nicht gewünscht ist, als Parameter bei bild.php?id=1&konstante=xxx.
 
Zurück