Kako koristiti HTTP referer

Stvari koje možete uraditi s referentnim procesom

Informacije koje vidite na veb lokacijama su samo podaci podataka koje te lokacije prenose dok putuju sa web servera na pretraživač osobe i obrnuto. Takođe postoji dosta prenosa podataka koji se dešava iza scene - a ako znate kako pristupiti tim podacima, možda ćete moći da ga koristite na zanimljivim i korisnim načinima! U ovom članku ćemo pogledati jedan specifičan podatak koji se prenosi tokom ovog procesa - HTTP referer.

Šta je referent HTTP-a?

HTTP referer je podatak koji web pretraživači prenose na server kako bi vam ispričali na kojoj strani je čitač bio pre nego što su došli na ovu stranicu. Ove informacije se mogu koristiti na vašoj web stranici kako bi pružile dodatnu pomoć, kreirale posebne ponude ciljanim korisnicima, preusmjerile kupce na relevantne stranice i sadržaj, ili čak blokirati posjetitelje da dođu na vašu web stranicu. Takođe možete da koristite skriptne jezike kao što su JavaScript, PHP ili ASP za čitanje i procjenu referrer informacija.

Prikupljanje referentnih informacija sa PHP-om, JavaScript-om i ASP-om

Dakle, kako sakupljate ove podatke HTTP referera? Evo nekih metoda koje možete koristiti:

PHP čuva referentne informacije u sistemskoj promenljivoj pod nazivom HTTP_REFERER. Za prikaz referera na PHP stranici možete napisati:

ako (isset ($ _ SERVER ['HTTP_REFERER']))) {
echo $ _SERVER ['HTTP_REFERER'];
}

Ovo provjerava da li varijabla ima vrijednost i onda ga odštampa na ekranu. Umesto echo $ _SERVER ['HTTP_REFERER']; postavili biste skriptne linije da biste proverili različite referere.

JavaScript koristi DOM da bi pročitao referera. Kao i kod PHP-a, trebalo bi da proverite da li je referent vrijedan. Međutim, ako želite manipulirati tom vrijednošću, trebate prvo podesiti na varijablu. Ispod je kako ćete prikazati referera na vašoj stranici sa JavaScript-om. Imajte na umu da DOM koristi alternativni pravopis referrera, dodajući dodatni "r" tamo:

ako (document.referrer) {
var myReferer = document.referrer;
document.write (myReferer);
}

Tada možete koristiti referere u skriptama sa varijablom myReferer .

ASP, kao i PHP, postavlja referera u sistemsku varijablu. Tada možete sakupiti takve informacije ovako:

ako (Request.ServerVariables ("HTTP_REFERER")) {
Dim myReferer = Request.ServerVariables ("HTTP_REFERER")
Response.Write (myReferer)
}

Možete koristiti promenljivu myReferer da biste prilagodili svoje skripte po potrebi.

Kada imaš referera, šta možeš sa njim?

Dakle, dobivanje podataka je korak 1. Kako ćete ići na to će zavisiti od vaše specifične lokacije. Sledeći korak, naravno, je pronalaženje načina da se ove informacije koriste.

Jednom kada imate referentne podatke, možete ga koristiti za skriptiranje svojih stranica na više načina. Jedna jednostavna stvar koju možete učiniti je da jednostavno postavite mesto od koga mislite da je posjetilac došao. Doduše, to je prilično dosadno, ali ako treba da pokrenete neke testove, to može biti dobra ulazna tačka za rad.

Ono što je interesantniji primer je kada koristite referera da prikažete različite informacije u zavisnosti od toga odakle su došli. Na primjer, možete učiniti sljedeće:

Blokiraj korisnike pomoću .htaccess-a od Referera

Sa bezbednosnog stanovišta, ako doživite mnogo spamera referera na vašoj web lokaciji iz jednog određenog domena, može vam pomoći da jednostavno blokirate taj domen sa vaše stranice. Ako koristite Apache sa instaliranim mod_rewrite, možete ih blokirati sa nekoliko redova. Dodajte sljedeće u vaš .htaccess datoteku :

RewriteEngine on
# Opcije + FollowSymlinks
RewriteCond% {HTTP_REFERER} spammer \ .com [NC]
RewriteRule. * - [F]

Zapamtite da promenite reč spammer \ .com na domen koji želite da blokirate. Ne zaboravite staviti \ ispred bilo kojeg perioda u domenu.

Nemojte se oslanjati na referera

Zapamtite da je moguće prevariti referera, tako da nikada ne koristite referera za sigurnost. Možete ga koristiti kao dodatak drugoj sigurnosti, ali ako bi stranicu trebali pristupati samo određenim osobama, tada bi trebali postaviti lozinku pomoću htaccess-a .