Kako uporabljati napotitelj HTTP

Stvari, ki jih lahko naredite z referenčnim procesom

Informacije, ki jih vidite na spletnih mestih, so samo podatki, ki jih ta spletna mesta oddajajo, ko potujejo iz spletnega strežnika v brskalnik osebe in obratno. Obstaja tudi precejšen prenos podatkov, ki se zgodi za prizori - in če veste, kako dostopati do teh podatkov, ga boste morda lahko uporabili na zanimive in uporabne načine! V tem članku bomo pregledali en specifičen del podatkov, ki se prenesejo med tem procesom - referenčni HTTP.

Kaj je referenčni naslov HTTP?

Napotitelj HTTP so podatki, ki jih spletni brskalniki posredujejo strežniku, da bi vam povedali, na kateri strani je bil bralnik vklopljen, preden so prišli na to stran. Te informacije lahko uporabite na svojem spletnem mestu, da zagotovite dodatno pomoč, ustvarite posebne ponudbe ciljnim uporabnikom, preusmerite stranke na ustrezne strani in vsebino ter celo blokirate obiskovalce, da pridejo na vašo spletno stran. Za branje in vrednotenje napotiteljevih podatkov lahko uporabite tudi skriptne jezike, kot so JavaScript, PHP ali ASP.

Zbiranje referenčnih informacij s PHP, JavaScriptom in ASP

Torej, kako zbirate te referenčne podatke HTTP? Tukaj je nekaj metod, ki jih lahko uporabite:

PHP shrani referenčne podatke v sistemsko spremenljivko, imenovano HTTP_REFERER. Če želite prikazati referer na strani PHP, lahko napišete:

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

To preveri, ali ima spremenljivka vrednost, nato pa jo natisne na zaslon. Namesto echo $ _SERVER ['HTTP_REFERER']; postavili boste skriptne vrstice, da bi preverili različne napotitelje.

JavaScript uporablja DOM za branje napotitelja. Tako kot pri PHP, morate preveriti, ali ima referer vrednost. Vendar, če želite manipulirati s to vrednostjo, jo morate najprej nastaviti na spremenljivko. Spodaj je, kako boste prikazali napotitelja na svojo stran z JavaScriptom. Upoštevajte, da DOM uporablja nadomestno črkovanje referrerja, pri čemer dodaja še dodatno "r":

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

Potem lahko uporabite referer v skripte s spremenljivko myReferer .

ASP, kot je PHP, nastavi referer v sistemsko spremenljivko. Takšne podatke lahko zbirate takole:

če (Request.ServerVariables ("HTTP_REFERER")) {
Dim myReferer = Request.ServerVariables (»HTTP_REFERER«)
Response.Write (myReferer)
}

Lahko uporabite spremenljivko myReferer, da prilagodite svoje skripte po potrebi.

Ko imate referenca, kaj lahko storite s tem?

Tako pridobivanje podatkov je korak 1. Kako greš o tem bo odvisno od vašega določenega spletnega mesta. Naslednji korak, seveda, je najti načine za uporabo teh informacij.

Ko imate referenčne podatke, ga lahko uporabite za skript vaše strani na več načinov. Ena preprosta stvar, ki jo lahko storite, je, da samo objavite, kamor mislite, da je prišel obiskovalec. Res je, da je to precej dolgočasno, če pa morate opraviti nekaj testov, je to lahko dobra vstopna točka za delo.

Kaj je bolj zanimiv primer je, ko uporabite referer za prikaz različnih informacij, odvisno od tega, od kod prihajajo. Na primer, lahko naredite naslednje:

Blokiraj uporabnike s .htaccess s pomočjo referenčnega

Z varnostnega stališča, če doživite veliko neželene pošte na vašem spletnem mestu iz ene določene domene, lahko preprosto blokirate to domeno z vaše strani. Če uporabljate Apache z nameščenim mod_rewrite, jih lahko blokirate z nekaj vrsticami. V datoteko .htaccess dodajte naslednje:

RewriteEngine on
# Možnosti + Sledi povezavam
RewriteCond% {HTTP_REFERER} spammer \ .com [NC]
RewriteRule. * - [F]

Ne pozabite spremeniti besede spammer \ .com na domeno, ki jo želite blokirati. Ne pozabite postaviti \ spredaj na katerokoli obdobje v domeni.

Ne zanašajte se na referenčnega

Ne pozabite, da je mogoče prepisati refererja, zato nikoli ne uporabljajte refererja samo za varnost. Lahko jo uporabite kot dodatek k vašemu drugemu varnostnemu varstvu, vendar, če bi stran lahko dostopali le določeni ljudje, morate na njej nastaviti geslo s htaccess .