Для того чтобы отличить прямой и AJAX-запрос достаточно проверить значение глобальной переменной $_SERVER['HTTP_X_REQUESTED_WITH']
.
<?php
if (@$_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
// Обработка AJAX запроса...
}
Использование данного метода в целях безопасности не имеет ни какого смысла т.к. серверу можно передать любые заголовки, например через cURL.