Действительно простое решение - открыть все файлы, которые вы хотите защитить, от прямого ввода URL-адреса и добавить в начало следующее:
<?php if (isset($_GET['ajax']) != true) die();?>
Теперь избавьтесь от скрипта перенаправления, поскольку он бесполезенсейчас.Вам не нужно использовать сессии для этого.Каждый раз, когда вы запрашиваете страницу, используйте ее прямой URL, просто добавьте ?ajax=1
в ее конец.
Добавив ?ajax=1
, PHP установит ключ 'ajax
' для $_GET
глобальная переменная со значением 1
.Если ?ajax=1
опущен в URL, тогда PHP не установит ключ 'ajax
' в $_GET
, и поэтому, когда вы проверите, установлен ли он на isset()
, он вернет false, таким образом, скрипт умрет и невыводить что угодно.По сути, страница будет выводить данные только в том случае, если в конце URL-адреса указан ?ajax=1
.
Кто-то может все еще «подделать» URL-адрес и самостоятельно добавить «?ajax=1
», но это не является поведением по умолчанию длялюди или веб-браузеры.Если вам абсолютно необходимо предотвратить это, то это будет намного сложнее, например, использование шаблонов вне общедоступной папки.Большинство других «простых» решений будут иметь такой же «подделывающий» потенциал.