Ограничение количества страниц, которые могут посещать не участники

#php #session #session-variables #session-cookies

#php #сессия #сессия-переменные #сессия-cookies

Вопрос:

  1. Каков наилучший способ ограничить количество страниц, которые может видеть незарегистрированный посетитель? Мы должны проверить, существует ли $_SESSION[‘id’], но как ограничить количество страниц за определенный период?
  2. Поисковые системы потребляют много трафика! Является ли это практическим методом ограничения времени, которое поисковые системы проводят на веб-сайте? например, позволяя им видеть только x страниц в день или час (поскольку они не регистрируются).

Ответ №1:

Для вашего первого вопроса: используйте сеансы для хранения этой информации. Также не используйте идентификатор, подобный номерам автоматического увеличения, которые будут храниться в вашей базе данных, преобразуйте его в очень длинную строку, не содержащую ничего значимого, поэтому вероятность того, что кто-то изменит идентификатор и войдет в учетную запись другого пользователя, будет очень мала…

По второму вопросу я понятия не имею… Извините…

Комментарии:

1. Как кто-то может подделать значение сеанса? Сеанс на стороне сервера и хранится на сервере, верно? В любом случае, я получил ваше предложение: использовать идентификатор хэша.

2. Сеансы также хранятся в файлах cookie на компьютере пользователя. Поэтому, когда запрашивается страница, отправляется файл cookie, который считывается вашей страницей. Сохраняется только пара ключ / значение. Все остальные данные хранятся на вашем сервере… Поэтому, если кто-то изменит значение файла cookie на какой-либо другой идентификатор, он может легко подделать вашу систему… Вот почему лучше использовать хэшированные идентификаторы…

Ответ №2:

Ответ 2:

Если вы не заботитесь о SEO, вы можете заблокировать хорошо работающие поисковые системы с помощью robots.txt . К поисковым системам с плохим поведением будут относиться так же, как к пользователям с плохим поведением.

Если вы заботитесь о SEO, то вы активно хотите, чтобы они посещали ваш сайт! Отправка им кодов состояния 4xx или 503s не поможет проиндексировать ваш контент.

Тем не менее, Google Webmaster Tools предлагает возможность запрашивать скорость обхода.

Комментарии:

1. Я не хочу устанавливать скорость обхода вручную в инструментах для веб-мастеров. Я забочусь о SEO, но поисковые системы продолжают часто посещать, но обновлений для переиндексации не так много. Например, в блоге с 1 записью каждый день Google будет сканировать 100 старых статей в тот же день (что бесполезно для SEO). Более того, это не страница ошибки, а перенаправление на страницу входа.

2. @Ali: Поисковые системы не знают ваш сайт. Таким образом, они проверяют, существует ли страница по- прежнему . Если вы правильно настроите свой веб-сервер и приложение, вы можете просто дать им 304 Not Modified ответ, который сильно сократит трафик. Не говоря уже о предоставлении вашего контента с некоторыми рекомендациями о том, когда следует вернуться к странице снова.

Ответ №3:

Добавьте что-то подобное в свой фреймворк:

 if (!isset($_SESSION['sc']))$_SESSION['sc']=0;
 

затем на странице результатов добавьте что-то вроде этого:

 $_SESSION['sc']  ;
$c=$_SESSION['sc'];
if ($c>3) {echo "You have reached your search result limit."; exit;}
 

что касается вашего второго вопроса: настройка переменной сеанса для ограничения слишком большого обхода поисковых систем завершится неудачей. Роботы не должны хранить файлы cookie с вашего сайта, даже сеансовые файлы cookie, что означает, что PHP не сможет отслеживать робота, если робот не хочет, чтобы его отслеживали.

Я полагаю, что способ обойти это — убедиться, что пользователи могут хранить файлы cookie, прежде чем они смогут сканировать вашу поисковую систему.