gammel kode for å forhindre høyreklikking på bilder -skadelig?

En tråd i 'Javascript/Ajax' startet av Tonny Kluften, 7 Sep 2011.

  1. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.951
    gammel kode for å forhindre høyreklikking på bilder, kan denne koden være til fare for sikkerheten på nettsiden?

    <script type="text/javascript">
    <!--
    var message="Høyreklikking er deaktivert på denne hjemmesiden!";
    function clickIE4(){
    if (event.button==2){
    alert(message);
    return false;
    }
    }
    function clickNS4(e){
    if (document.layers||document.getElementById&&!document.all){
    if (e.which==2||e.which==3){
    alert(message);
    return false;
    }
    }
    }
    if (document.layers){
    document.captureEvents(Event.MOUSEDOWN);
    document.onmousedown=clickNS4;
    }
    else if (document.all&&!document.getElementById){
    document.onmousedown=clickIE4;
    }
    document.oncontextmenu=new Function("alert(message);return false")
    // -->
    </script>
     
  2. nilsga Medlem

    Innlegg:
    162
    Hva mener du med "fare for sikkerheten"? Forøvrig har jeg aldri skjønt hvorfor man skal hindre høyreklikk. Hvis brukeren virkelig vil ha tak i bildet ditt, så vet han/hun hvordan man gjør det uansett...
     
  3. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.951
    Lurer på om det kan være noe i koden som åpner for hackere.
     
  4. nilsga Medlem

    Innlegg:
    162
    Det må man nesten være hacker for å kunne svare på ;) Scriptet i seg selv ser ufarlig ut (om enn unødvendig og ur-gammelt), men det betyr ikke at resten av siden ikke kan være åpent for hull.
     
  5. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.951
    Ja, det er urgammelt, en av kundene mine vil bruke det på nettstedet sitt og jeg må sjekke det.
     
  6. adeneo

    adeneo Medlem

    Innlegg:
    1.611
    Den koden er ufarlig, det er ingen mulighet til å sette inn data, variabler eller å evaluere noe som helst, det er kun de samme standardfunksjonene som brukes i bøttevis av andre scripts uten problemer.

    Spørsmålet er vel heller hvorfor man ønsker å bruke en kodesnutt som er tiltenkt IE4 og var populær på nittitallet?

    Hvis man absolutt må forhindre høyreklikking så er det mye enklere å putte dette inline i body taggen, da det uansett er slik fiksfakseri som man burde prøve å unngå, noe slikt kanskje:

    HTML:
    <body oncontextmenu="return false;">
    er alt man trenger, med mindre man absolutt vil ha en slik irriterende alert som spretter opp.

    Dersom det er kun bilder man er redd for bør man begrense funksjonen til det, noe sånt:

    HTML:
    var image = getElementById(img);
        image.oncontextmenu = function() {
           return false;
        }
    
    uten at det virkelig hjelper stort hvis noen virkelig vil ha bildene!
     
  7. TorsteinO

    TorsteinO Art Director & grunder

    Innlegg:
    4.642
    tonny - jeg pleier faktisk heller å forklare kundene at det der er en dårlig løsning. Forklar dem at hvis noen virkelig vil ha bildene deres, så får de tak i dem samme hva så lenge de kan se dem på skjermen sin, og at den eneste "beskyttelsen" som virkelig funker, er å

    1) ikke legge ut bildene i alt for høy oppløsning/kvalitet
    og
    2) merke bildene med navn/nettside/vannmerke

    så lenge man forklarer folk det der ordentlig, så har jeg enda ikke opplevd at det er noen som insisterer på å bruke "antihøyreklikk"-varianten.
     
  8. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.951
    Det er vannmerke og bilder i lav oppløsning allerede. Men kunden skal ha en slik løsning, så da så.
     
  9. TorsteinO

    TorsteinO Art Director & grunder

    Innlegg:
    4.642
  10. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.951

Del denne siden