Учитывая, что заголовки Referer и X-Request-With отправляются (или не отправляются) клиентом (браузером или чем-либо еще, что может отправлять HTTP-запрос) , им нельзя доверять.
Вы можете использовать их в качестве подсказок, чтобы улучшить пользовательский опыт;но вы не должны полагаться на их наличие или правильность.
В принципе, вы не можете быть уверены, что запрос поступил из определенного домена (даже для XmlHttpRequest: браузер может использовать толькоXHR в том же домене ... Но вы не можете быть уверены, что полученный вами запрос исходит от XHR или нет) .
Среди возможных идей (не уверен, в чем заключается ваша настоящая проблема / потребность) , вы можете попробовать использовать какой-нибудь API-ключ для ограничения скорости запросов или около того?