Refferer Check nur mit URL
Kosta
- php
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
$ref = $_SERVER[HTTP_REFERER];
$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?
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"
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"
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
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...
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
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
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
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.