Hei,
Haluaisin saada kuvan, jonka voi katsoa vain yhden kerran. Yritän selventää tässä:
1. Käyttäjä siirtyy kuvasivulle.
2. Hän näkee kuvan, ja painaa sitä hiiren oikealla näppäimellä. Hän painaa valikosta "Näytä kuva".
3. Hän saa eteensä virhesivun.
Eli kuvan katsominen pitäisi pystyä rajoittamaan niin, että sen voi katsoa vain sivulatauksen yhteydessä. Tiedän, että tämä ei kopiointia estä, mutta miten saisin sen silti toimimaan?
Kiitos paljon avusta!
Tämä tuntuu toimivan ainakin Firefoxilla:
*** kuvapohja.php Kuva:<br> <img src="kuva.php">
*** kuva.php <?php if (strstr($_SERVER["HTTP_ACCEPT"], "text") !== false) { die("Kopiointi kielletty!"); } header("Content-type: image/png"); readfile("kuva.png"); ?>
Esittely:
http://koti.mbnet.fi/pllk/muut/kuvapohja.php
http://koti.mbnet.fi/pllk/muut/kuva.php
Loistava vinkki! Olen juuri miettinyt noita php-tiedostoja kuvina.
Loistavaa! Internet Explorer 8:llakin toimii.
Kännykkäni Opera Minillä ei toiminut.
Oikeallakaan Operalla ei toimi.
EDIT: Tai siis, tietokoneelle tarkoitetulla Operalla.
Saanko kysyä miksei kuvaa saa katsoa kuin kerran?
Haluaisin vaan vähän yrittää rajoittaa kopiointia.
Olli kirjoitti:
Haluaisin vaan vähän yrittää rajoittaa kopiointia.
No tässä tapauksessa kannattaa asettaa .htaccess-tiedostolla oikeuksia.
janijohannes kirjoitti:
Olli kirjoitti:
Haluaisin vaan vähän yrittää rajoittaa kopiointia.
No tässä tapauksessa kannattaa asettaa .htaccess-tiedostolla oikeuksia.
Kuvat eivät näy silloin ollenkaan edes siellä missä niitten pitäisi.
Ehdottamaasi ominaisuutta ei ole mahdollista toteuttaa yleisesti toimivasti, koska selain voi hakea kuvan täsmälleen samalla pyynnöllä riippumatta siitä, onko se tarkoitus näyttää sivulla vai erikseen. Antin ehdotus perustuu siihen, että selain tietää img-tagissa olevan osoitteen viittaavan kuvaan ja saattaa siis joskus ilmoittaa palvelimelle, että haluaa ladata juuri kuvan. Tähän ei kuitekaan kannata luottaa, kuten jo havaittiin. Sitäpaitsi selain voi sopivasti säädettynä ottaa sivua varten ladatun kuvan suoraan välimuististakin.
Olli kirjoitti:
Haluaisin vaan vähän yrittää rajoittaa kopiointia.
Silloin kannattaa tehdä samanlainen systeemi kuin IRC-Galleriassa. Kuvan päälle läpinäkyvä div, ja se vaikka ihan vaan läpinäkyväksi.
Olli kirjoitti:
Internet Explorer 8:llakin toimii
...väärin. ;)
Olli kirjoitti:
janijohannes kirjoitti:
Olli kirjoitti:
Haluaisin vaan vähän yrittää rajoittaa kopiointia.
No tässä tapauksessa kannattaa asettaa .htaccess-tiedostolla oikeuksia.
Kuvat eivät näy silloin ollenkaan edes siellä missä niitten pitäisi.
janijohannes tarkoitti varmaan sitä, että php:lla voi lukea tiedoston sisällön (esim. kuva) kansiosta joka on suojattu .htaccess-tiedostolla, esim:
<?php header("Content-type: image/jpg"); $kuva = file_get_contents('htaccess_suojattu_kansio/kuva.jpg'); echo $kuva; ?>
kasetti kirjoitti:
Olli kirjoitti:
janijohannes kirjoitti:
Olli kirjoitti:
Haluaisin vaan vähän yrittää rajoittaa kopiointia.
No tässä tapauksessa kannattaa asettaa .htaccess-tiedostolla oikeuksia.
Kuvat eivät näy silloin ollenkaan edes siellä missä niitten pitäisi.
janijohannes tarkoitti varmaan sitä, että php:lla voi lukea tiedoston sisällön (esim. kuva) kansiosta joka on suojattu .htaccess-tiedostolla, esim:
<?php header("Content-type: image/jpg"); $kuva = file_get_contents('htaccess_suojattu_kansio/kuva.jpg'); echo $kuva; ?>
Melkeinpä...
Parempi vain tehdä kryptaus.
Kuten tuossa mainittiinkiin alla
Juhko kirjoitti:
Olli kirjoitti:
Haluaisin vaan vähän yrittää rajoittaa kopiointia.
Silloin kannattaa tehdä samanlainen systeemi kuin IRC-Galleriassa. Kuvan päälle läpinäkyvä div, ja se vaikka ihan vaan läpinäkyväksi.
Olli kirjoitti:
Internet Explorer 8:llakin toimii
...väärin. ;)
Juuha eipä toiminnukkaa :D Katteli varmaa väärin.
janijohannes kirjoitti:
Melkeinpä täsmälleen tämä.
Mutta ajattelin suoraan tämänsuuntaista:RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?sivustosi\.com(/)?.* [NC] RewriteCond %{HTTP_REFERER} !^http://(www\.)?toinensivustosi\.com(/)?.* [NC] RewriteCond %{HTTP_REFERER} !^http://(www\.)?kolmassivustosi\.com(/)?.* [NC] RewriteRule \.(jpe?g|gif|bmp|png)$ images/kuvavaras.gif [NC,L]Eli tuo vaan .htaccess-filuun. Paitsi tietenkin osoitteet oikeiksi.
Antamasi skripti estää suoralinkityksen mutta tarkotin skriptiä joka estää "näytä kuva" -jutun painamisen tjsp.
Itse käytän kryptausta hyväksi tässä asiassa...
Kryptaan kuvasta ensimmäiset 2048 tavua (ei koko kuvaa, ettei lataus hidastu liikaa), sitten PHP-skriptillä puran ne tavut (skripti sisältää avaimen), mutta tämän estää vain itse kuvaan suoralinkityksen, ei PHP-skriptin :)
joonas905 kirjoitti:
mutta tämän estää vain itse kuvaan suoralinkityksen, ei PHP-skriptin :)
Eli saavutettu hyöty on...?
ajv kirjoitti:
joonas905 kirjoitti:
mutta tämän estää vain itse kuvaan suoralinkityksen, ei PHP-skriptin :)
Eli saavutettu hyöty on...?
Siinä kohtaa lienee helppo rajoittaa kuvan latausta, tarkistaa onko nykyinen sijainti oikea, onko joku tietty muuttuja määritelty oikein, jos on, niin näytetään kuva, muulloin ei.
Tuo kikkailu vain on hieman hassua.
Milo kirjoitti:
Siinä kohtaa lienee helppo rajoittaa kuvan latausta, ...
Käytännössä siis tuolla menetelmällä saadaan aikaan kuva, jonka katsominen vaatii sopivan evästeen tai Referer-otsikon. Näidenkin toimivuudesta kaikilla käyttäjillä, asetuksilla ja palomuureilla voidaan taas keskustella.
ajv kirjoitti:
joonas905 kirjoitti:
mutta tämän estää vain itse kuvaan suoralinkityksen, ei PHP-skriptin :)
Eli saavutettu hyöty on...?
Tarkoitus on lähinnä se, että ne tarkistukset sun muut laitetaan sinne PHP-koodiin (mutta mitään vedenpitävää ratkaisuahan tohon ei ole, koska ainahan ne tiedot voi väärentää) ja kun joku sen kuvan sitten saa näkyviin niin ei tarvi muuta kun "Tallenna kuva nimellä..." -> työpöydälle -> levitykseen jonkun muun kanavan kautta (esimerkiksi) :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.