Вопрос или проблема
У меня есть сайт на WordPress с конфиденциальными личными данными, и я отправляю ссылку на всю страницу клиенту по электронной почте и т.д.
Как я могу истечь ссылку после 1 сеанса, чтобы, если клиент открыл ссылку, чтобы посетить сайт и закрыл страницу, эта ссылка больше не работала, и WordPress был недоступен, сообщая, что сессия истекла. Пожалуйста, запросите другой сеанс.
Как я могу это сделать?
Этот плагин подходит под большинство ваших требований:
https://wordpress.org/plugins/public-post-preview/
Он позволяет вам делиться предварительным просмотром страницы с любым, у кого есть ссылка.
Вы можете изменить время истечения с помощью фильтра.
add_filter( 'ppp_nonce_life', 'my_nonce_life' );
function my_nonce_life() {
return 60 * 60 * 24 * 1; // 1 день
}
Ответ или решение
Для решения задачи создания ссылок с временной меткой на страницы вашего сайта WordPress, обеспечивающих доступ к конфиденциальным данным, можно использовать плагин "Public Post Preview". Он позволяет генерировать временные ссылки для просмотра публикаций, однако, для достижения вашей цели – ограничения доступа после первой сессии – потребуется дополнительная настройка.
Порядок действий
-
Установка плагина:
- Зайдите в админку вашего WordPress сайта.
- Перейдите в раздел "Плагины" > "Добавить новый".
- Найдите плагин "Public Post Preview" и установите его.
- Активируйте плагин.
-
Настройка плагина:
- После активации плагина, вы сможете создавать временные ссылки для каждого поста или страницы. Для этого откройте редактируемую запись и отметьте опцию "Разрешить предварительный просмотр для всех с этой ссылкой".
-
Использование фильтра:
- Для того чтобы настраивать срок действия ссылки, добавьте следующий код в файл
functions.php
вашей темы:add_filter( 'ppp_nonce_life', 'my_nonce_life' ); function my_nonce_life() { return 60; // 60 секунд, ссылка будет действительна в течение одной сессии }
Этот код устанавливает время жизни ссылки в 60 секунд. После этого времени ссылка станет недействительной.
- Для того чтобы настраивать срок действия ссылки, добавьте следующий код в файл
-
Добавление логики для ограничения доступа:
- Чтобы реализовать концепцию доступа ограниченного по сессиям, вам нужно будет дополнительно модифицировать код. Например, можно использовать сессии PHP:
session_start(); if (!isset($_SESSION['is_valid']) || $_SESSION['is_valid'] !== true) { // Вывод уведомления и перенаправление wp_safe_redirect(home_url('/expired')); // Страница с уведомлением об истечении срока действия exit; } // Устанавливаем сессию при первом обращении: $_SESSION['is_valid'] = true;
Измените это на свои нужды, чтобы сохранять состояние сессии, пока пользователь активен на странице.
- Чтобы реализовать концепцию доступа ограниченного по сессиям, вам нужно будет дополнительно модифицировать код. Например, можно использовать сессии PHP:
-
Тестирование и оптимизация:
- После настройки все нужно протестировать. Проверьте, как действует сессионный тайм-аут и корректность перехода на страницу с уведомлением.
- Кроме того, стоит рассмотреть использование плагина для управления сессиями или создание своей логики обработки, чтобы избежать потенциальных проблем с безопасностью.
Заключение
Приведённый выше метод позволяет вам ограничивать доступ к определённым страницам сайта WordPress, создавая ссылки с истекшим сроком действия. Убедитесь, что вы соблюдаете все меры безопасности и проверяете входящие данные, чтобы защитить конфиденциальные данные клиентов. Правильная реализация этого подхода не только повысит безопасность, но и улучшит пользовательский опыт ваших клиентов.