Ja, det skal så vidt jeg vet virke med alle redirects, også POST’ing fra et form osv. så lenge referrer ligger i headern.
Når det er sagt, så er dette en av de dårligste sikkerhetssjekkene som finnes.
Referrer kan enkelt settes i header når man bruker ting som cURL, som du har lært å bruke i en annen tråd, og man kan altså svært enkelt spoofe referrer ved å sette den til akkurat hva man vil.
Det er ingen garanti for at referrer alltid sendes, det er opp til nettleseren å sende slikt, og med for eksempel SSL så funker normalt http_referer dårlig osv. slik at det er en upålitelig og unødvendig sjekk.
Legg til et skjult input element istedet, bot’er vil fylle ut dette, og du kan bare sjekke om det er tomt på serversiden.
Dette er såkalt “unobtrusive” validering som brukeren aldri ser, og det er pålitelig ettersom en bruker aldri vil fylle ut et element som ikke er synlig, og det luker ut 95% av bot’er.