Следуйте норме: используйте жетоны.
Проверка реферера на самом деле ничего не делает, потому что запрос все равно приходит с этой страницы! Проблема, которую вы пытаетесь предотвратить, заключается в том, что страница запрашивается без участия пользователя; не страница сама по себе.
Жетоны - это способ защиты от этого. Вы генерируете один, сохраняете его в сеансе и записываете его в HTML, затем, после публикации, проверяете тот, который получаете, и смотрите, соответствует ли он ожидаемому. Если этого не произойдет, вы потерпите неудачу. В любом случае, вы генерируете новый токен впоследствии.
Также может быть уместно учитывать, что это может испортить людей, если они имеют несколько страниц; так что вы можете создать другой токен для каждой страницы.