Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]694[/thread]

header ausgeben: Bilder nicht temporär speichern



<< |< 1 2 >| >> 14 Einträge, 2 Seiten
MartinR
 2006-03-17 09:09
#7128 #7128
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
Hi,

ist es möglich dem Browser mitzuteilen, dass er z.B. bestimmte Bilder nicht in seinen temporären Ordnern ablegt?

Ich gebe diese Bilder z.B. so aus:

Code: (dl )
1
2
3
4
5
6
7
8
9
print $cgi->header(
-type => 'image/jpeg'
);

open(DATEI, "bild.jpg") || die;
binmode(DATEI);
binmode(\*STDOUT);
print<DATEI>;
close DATEI;


Kann ich durch anpassen des headers (oder anders) dieses Verhalten (zumindest bei den meisten Browsern) erzwingen? Ihr wisst schon - um Bilderklau etwas zu erschweren ...

Danke

Martin
dominicn
 2006-03-17 11:48
#7129 #7129
User since
2003-08-08
327 Artikel
BenutzerIn
[default_avatar]
Das müsste im Header mit "Cache-Control: no-store" machbar sein. Ob sich die Browser dran halten weiß ich nicht.

Und Bilderklau wird damit eigentlich nicht wirklich erschwert, oder?? Wenn ich ein Bild haben will, klick ich mit rechter Maustaste drauf und sage "Bild speichern unter".

Und noch ein Zitat von http://www.php-homepage.de/manual/function.header.php
Quote
PHP-Skripte erzeugen oft dynamische Inhalte, die weder vom Browser noch von irgendeinem Proxy zwischen Web-Server und Client-Browser gepuffert ("gecached") werden sollen bzw. dürfen. Bei vielen Proxies und Browsern kann das Cachen wie folgt unterbunden werden:

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum in der Vergangenheit
?>


Die Umsetzung in Perl ist dann analog.
MartinR
 2006-03-17 12:30
#7130 #7130
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
[quote=dominicn,17.03.2006, 10:48]Und Bilderklau wird damit eigentlich nicht wirklich erschwert, oder?? Wenn ich ein Bild haben will, klick ich mit rechter Maustaste drauf und sage "Bild speichern unter".[/quote]
Hi, und Danke schon mal.

Dass der Diebstahl nicht unmöglich gemacht werden kann ist mir schon klar. Aber das mit dem Rechtsklick kannst Du ja mal auf meiner Seite probieren ;-)))

Aber wie übergebe ich die Cache-Control-Parameter mittels cgi.pm? Die Syntax ist mir nicht klar ...

... und PHP kommt mir nicht in die Tüte!

cu

Martin
nepos
 2006-03-17 12:36
#7131 #7131
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Dann schalt ich auf deiner Seite temporaer Javascript aus und dann kannst du mal sehen, wie man das Bild trotzdem kopiert :P
Relais
 2006-03-17 12:37
#7132 #7132
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=MartinR,17.03.2006, 11:30]Aber wie übergebe ich die Cache-Control-Parameter mittels cgi.pm? Die Syntax ist mir nicht klar ...[/quote]
Schau mal unter CPAN:perldoc CGI und dort unter "header".
Code: (dl )
print $q->header(-cache_control   => 'no-cache, must-revalidate');
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
MartinR
 2006-03-17 13:34
#7133 #7133
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
[quote=nepos,17.03.2006, 11:36]Dann schalt ich auf deiner Seite temporaer Javascript aus und dann kannst du mal sehen, wie man das Bild trotzdem kopiert :P[/quote]
... na dann mach's doch. Ist nämlich keine JavaScript-Lösung. Aber wie schon gesagt: Mir ist klar, dass dies auch nicht allzuviel Sicherheit bietet.

Damit es jetzt nicht jeder selbst probieren muss: Das Bild ist als Hintergrundbild einer Tabelle angelegt und drüber liegt ein durchsichtiges gif. Und dieses gif erhältst Du dann mit dem Rechtsklick.

Ich habe mir auch schon überlegt, ob ich nicht einfach jedes Bild per GD vierteile. Ist halt mit ziemlich Aufwand verbunden.
MartinR
 2006-03-17 13:44
#7134 #7134
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
[quote=Relais,17.03.2006, 11:37]Schau mal unter CPAN:perldoc CGI und dort unter "header".
Code: (dl )
print $q->header(-cache_control   => 'no-cache, must-revalidate');
[/quote]
Hi, danke. Aber ich schwöre ich habe hier

http://search.cpan.org/~lds/CGI.pm-3.17/

nachgesehen und nichts gefunden ....
cbxk1xg
 2006-03-17 15:45
#7135 #7135
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Bilderklau erschweren???

Wie wäre es mit einem großen Wasserzeichen? Das ist jedenfalls einfacher und effektiver als irgendwelche Cache-Spielerein. Vielleicht sucht ja mal jemand mit der Google-Bildsuche nach deinen Bildern. Allerdings solltest Du dann auch ALT-tags für deine Bilder vergeben. Mit Tabellenhintergründen kommst Du da nicht weit.
Relais
 2006-03-17 16:57
#7136 #7136
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=MartinR,17.03.2006, 12:44][quote=Relais,17.03.2006, 11:37]Schau mal unter CPAN:perldoc CGI und dort unter "header".
Code: (dl )
print $q->header(-cache_control   => 'no-cache, must-revalidate');
[/quote]
Hi, danke. Aber ich schwöre ich habe hier

http://search.cpan.org/~lds/CGI.pm-3.17/

nachgesehen und nichts gefunden ....[/quote]
Ja, da schwoerst Du besser mal nicht, sondern schaust noch einmal nach.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
ptk
 2006-03-17 23:56
#7137 #7137
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=MartinR,17.03.2006, 08:09]Kann ich durch anpassen des headers (oder anders) dieses Verhalten (zumindest bei den meisten Browsern) erzwingen? Ihr wisst schon - um Bilderklau etwas zu erschweren ...[/quote]
Naja, jeder mit ein bisschen Kenntnis über HTTP etc. wird wissen, wie er so etwas umgeht.
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2006-03-17 09:09.