Kako koristiti HTTP referent

Stvari koje možete učiniti s referer procesom

Informacije koje vidite napisane na web stranicama samo su dio podataka koje te web-lokacije prenose dok putuju s web-poslužitelja na preglednik osobe i obrnuto. Tu je i fer iznos prijenosa podataka koji se događa iza scene - i ako znate kako pristupiti tim podacima, možda ćete ga moći koristiti na zanimljive i korisne načine! U ovom članku ćemo pogledati jedan određeni dio podataka koji se prenosi tijekom ovog procesa - HTTP referer.

Što je HTTP referent?

HTTP referer je podatak koji web preglednici prosljeđuju poslužitelju da vam kažu koja je stranica čitač prije nego što su došli na ovu stranicu. Ti se podaci mogu koristiti na vašoj web stranici kako bi pružili dodatnu pomoć, stvorili posebne ponude ciljanim korisnicima, preusmjerili korisnike na relevantne stranice i sadržaj ili čak blokirali posjetitelje da dolaze na vašu web-lokaciju. Također možete koristiti jezike skriptiranja kao što su JavaScript, PHP ili ASP da biste pročitali i ocijenili podatke o preporukama.

Prikupljanje referentnih podataka s PHP, JavaScript i ASP

Pa kako prikupljate ove HTTP referentne podatke? Evo nekoliko metoda koje možete koristiti:

PHP pohranjuje referentne podatke u varijabli sustava pod nazivom HTTP_REFERER. Za prikaz referera na PHP stranici možete zapisati:

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

To provjerava da varijabla ima vrijednost, a zatim ga ispisuje na zaslonu. Umjesto eho $ _SERVER ['HTTP_REFERER']; stavili biste linije skripte na mjesto kako biste provjerili različite referente.

JavaScript koristi DOM za čitanje referera. Baš kao i kod PHP-a, trebali biste provjeriti da referent ima vrijednost. Međutim, ako želite manipulirati tom vrijednošću, najprije ga postavite na varijablu. Ispod je kako biste pregledniku prikazali stranicu s JavaScriptom. Imajte na umu da DOM koristi alternativni pravopis preporuke, dodajući dodatni "r":

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

Zatim možete upotrijebiti referent u skriptama s varijablom myReferer .

ASP, poput PHP, postavlja referent u varijabli sustava. Zatim možete prikupiti sljedeće informacije:

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

Možete koristiti varijablu myReferer kako biste prilagodili svoje skripte prema potrebi.

Nakon što imate referenta, što možete učiniti s njom?

Stoga dobivanje podataka je korak 1. Kako ćete to učiniti ovisit će o vašem određenom mjestu. Sljedeći korak, naravno, pronalazi načine korištenja ovih informacija.

Nakon što imate referentne podatke, možete ga upotrijebiti za skriptiranje web stranica na više načina. Jedna jednostavna stvar koju možete učiniti jest da jednostavno postavite gdje mislite da je posjetitelj došao. Doduše, to je prilično dosadno, ali ako trebate izvoditi neke testove, to može biti dobra ulazna točka za rad.

Što je zanimljiviji primjer je kada koristite referer za prikaz različitih informacija ovisno o tome odakle su došli. Na primjer, možete učiniti sljedeće:

Blokirajte korisnike s .htaccess putem referera

Sa sigurnosne točke gledišta, ako na svojoj web lokaciji imate veliku količinu preporučenog neželjene pošte s jedne određene domene, to može pomoći da jednostavno blokirate tu domenu sa svoje web lokacije. Ako koristite Apache s mod_rewrite instaliranim, možete ih blokirati s nekoliko redaka. Dodajte sljedeće u svoju .htaccess datoteku :

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

Ne zaboravite promijeniti riječ spammer \ .com domeni koju želite blokirati. Ne zaboravite staviti \ ispred bilo kojeg razdoblja u domeni.

Nemojte se oslanjati na referenta

Ne zaboravite da je moguće prevariti referent, tako da nikada ne biste trebali koristiti referera za sigurnost. Možete ga upotrijebiti kao dodatak svojoj drugoj sigurnosti, no ako bi određene osobe trebale pristupiti stranici, trebate postaviti lozinku s htaccessom .