всё что вы написали ерунда полная. Все заголовки легко выставляются любым скриптом, в том числе и REFERRER
По поводу вопроса
- нет, не ресурсоемко
- есть альтернатива strpos substr и тд
Как правильно подметил этот чел -
Deodatuss , чтоб небыло левых запросов нужна какая-то авторизация для ваших посетителей, например в кеше хранить токены юзеров вполне удачная мысль.
PS А зачем вам такая "защита" ? любопытно просто, я попытался придумать ситуацию когда это нужно и необходимо, но так и не смог придумать )