Скрытое поле нелегко подделать, если оно содержит UID (если вы зашифруете отметку времени, вы сможете узнать, как долго пользователь находился на странице)
Конечно, пользователь может вводить в поле все, что он хочет, но если он не может сгенерировать действительный UID, он не может заставить ваш php-скрипт поверить, что он пришел откуда-то еще.
Вы также можете отслеживать посещенные страницы пользователя через $ _SESSION и использовать его вместо реферера HTTP (сохраняйте каждую посещенную страницу в массиве внутри $ _SESSION, и когда вызывается ваш скрипт, вы просто проверяете, была ли последняя страница вашей ? Вариации, которые возможны в зависимости от того, что вам нужно).