Kosta: Refferer Check nur mit URL

Hallo,
ich möchte gerne einen Referrer Check mit php realisieren. Und zwar möchte ich hier jeden Referrer durchlassen hauptsache er ist von der URL X egal welche Unterseite oder es gibt keinen Refferrer.
bisher habe ich

1. Referer-Variable abfragen:

$ref = $_SERVER[HTTP_REFERER];

2. Kontrolle ob, 'domain.org' drinne vorkommt:

$must_ref = "domain.org";
if ($ref =~ m/$must_ref/) {
 * * * OK;
}else{
 * * *NOTOK;
}

Aber wie füge ich hier ein das Falls kein Refferrer übergeben wird das gleich eingefügt wird?

  1. Aber wie füge ich hier ein das Falls kein Refferrer übergeben wird das gleich eingefügt wird?

    und wie greifst du all die fälle ab in denen ein falscher daherkommt? zb "schmalzlocke" oder "http://ich-bin-ein-gefaelschter-wert.example.com/und-du-weisst-das-garnicht"

    1. na mit der }else{ funktion... Sprich wenn Bedinung nicht erfüllt ist dann...

      Aber wie füge ich hier ein das Falls kein Refferrer übergeben wird das gleich eingefügt wird?

      und wie greifst du all die fälle ab in denen ein falscher daherkommt? zb "schmalzlocke" oder "http://ich-bin-ein-gefaelschter-wert.example.com/und-du-weisst-das-garnicht"

      1. na mit der }else{ funktion... Sprich wenn Bedinung nicht erfüllt ist dann...

        Weisst du das man den Referer problemlos fälschen kann?
        Viele auch ohne das zu wissen gar keinen Referer mitsenden, weil ein Schutzprogramm das verhindert.

        *Nebenbei, da habe ich selbst mal ne Frage:
        Wie stelle ich das eigentlich unter Windows/IE selbst an, ohne irgendwelche Programme, den Referer nicht mitzusenden?

        Paul

        1. Paul das ist mir durchaus bewusst bitte schaue dir den ersten Beitrag an... Es geht ja genau darum das falls kein Refferrer gesendet wird, das in diesem Fall "auch" der nutzer durchgelassen wird...

          1. Paul das ist mir durchaus bewusst bitte schaue dir den ersten Beitrag an... Es geht ja genau darum das falls kein Refferrer gesendet wird, das in diesem Fall "auch" der nutzer durchgelassen wird...

            ja aber ein falscher referrer ist nicht kein referrer und genau das musst du berückstichten

            wenn referrer = richtig oder referrer nicht vorhanden dann
              tu dieses und jenes
            sonst
              tu nichts
            ende

            das "tu nichts" ist in deinem fall dein problem

            wenn du http://examle.com/meineseite.php erwartest, der browser aber "http://examle.com/" mitschickt oder "ich verrats dir nicht" hast du ein problem, welches du unmöglich lösen kannst

  2. Guten Tag,

    ich möchte gerne einen Referrer Check mit php realisieren. Und zwar
    möchte ich hier jeden Referrer durchlassen hauptsache er ist von der URL
    X  egal welche Unterseite oder es gibt keinen Refferrer.
    bisher habe ich

    Es heißt Referer, nicht Referrer und auch nicht Refferrer.

    1. Referer-Variable abfragen:

    $ref = $_SERVER[HTTP_REFERER];

    Das ist PHP.

    2. Kontrolle ob, 'domain.org' drinne vorkommt:

    $must_ref = "domain.org";
    if ($ref =~ m/$must_ref/) {
    * * * OK;
    }else{
    * * *NOTOK;
    }

    Das ist, zumindest teilweise, Perl. In welcher Sprache möchtest du das eigentlich lösen?

    Aber wie füge ich hier ein das Falls kein Refferrer übergeben wird das
    gleich eingefügt wird?

    1. Frage ab, ob ein Referer übertragen wurde. Wenn nicht, setze die Verarbeitung fort. Wurde ein Referer übertragen, gehe zu 2.
    2. Prüfe, z.B. mit strpos() (wenn du PHP verwenden möchtest), ob example.org enthalten ist. Wenn ja, setze die Verarbeitung fort. Wenn nicht, breche die Verarbeitung ab.

    Gruß
    Christoph Jeschke

    --
    Zend Certified Engineer
    Certified Urchin Admin
    1. Es heißt Referer, nicht Referrer und auch nicht Refferrer.

      fürs protokoll, das englische wort ist "referrer" - das feld im http-header heisst aber "referer":
      RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1: 14.36 Referer

      referer mit einem R ist ein tippfehler der niemals korrigiert wurde

  3. Hallo,
    ich möchte gerne einen Referrer Check mit php realisieren. Und zwar möchte ich hier jeden Referrer durchlassen hauptsache er ist von der URL X egal welche Unterseite oder es gibt keinen Refferrer. [...]
    Aber wie füge ich hier ein das Falls kein Refferrer übergeben wird das gleich eingefügt wird?

    $ref = $_SERVER['HTTP_REFERER'];  
    if ( !strstr($ref,'domain.com') && preg_match('%^https?://%i',$ref) ) {  
     # böse  
    } else {  
     # ok  
    }  
    
    

    Ist, denk ich, selbsterklärend. Mit dem regulären Ausdruck wird sichergestellt, dass wirklich nur fremde Referer geblockt werden, und keine die durch Tools geblockt werden.