У меня немного странный вопрос, и я не уверен, что это вообще может быть достигнуто, но в любом случае мне любопытно попробовать.

У меня есть 2 независимых сайта, скажем, www.site1.com и www.site2.com. site2 будет помещен в href на site1. Вопрос в том, возможно ли, что site2 будет доступен только после того, как пользователь будет перенаправлен на него с site1, и если пользователь попытается открыть site2 напрямую или через href с другого сайта, отличного от site1, чтобы не иметь к нему доступа?

1
Atanas Ivanov 11 Окт 2021 в 13:55

3 ответа

Лучший ответ

Проверить:

window.document.referrer
// Empty if User is directly loading page.

Значение представляет собой пустую строку, если пользователь перешел на страницу напрямую (не по ссылке, а, например, с помощью закладки). Поскольку это свойство возвращает только строку, оно не дает вам доступа к объектной модели документа (DOM) к странице, на которую имеется ссылка.

Документация MDN: https://developer.mozilla.org/en -US / docs / Web / API / Document / referrer

Поддержка браузера:

enter image description here

2
Roy M J 11 Окт 2021 в 11:06

Вы можете проверить параметр публикации, который вы установили с перенаправления веб-сайта 1 (через форму или простой javascript). А затем установите переменную локального хранилища для проверки при загрузке сайта 2.

Документ локального хранилища

JavaScript пост запрос как форма отправить

Но имейте в виду, что этого можно легко обойти , обладая достаточными знаниями html / js.

Чтобы гарантировать, что только ваш веб-сайт может создавать параметр публикации, вы могли бы ( не уверен, что я здесь ): сгенерировать код (используемый в качестве параметра публикации) на ходу с веб-сервера 1 и отправить его на веб-сервер 2 по адресу в то же время (или немного раньше), чтобы убедиться, что код, полученный сервером 2, действительно сгенерирован на сервере 1

0
Martin Tavernier 11 Окт 2021 в 11:04

В зависимости от внутреннего сервера, который вы используете, вы можете использовать что-то, называемое данными REFERRER, которые будут в http header запроса (например, для вашей страницы www.site2.com). Этот REFERRER будет содержать информацию о том, кто направил пользователя на этот сайт. Вы можете добавить условие, например if REFERRER is www.site1.com then render the page.

Вот ссылка для начала https://developer.mozilla.org/en-US/ docs / Web / HTTP / Headers / Referer

0
Kishore S 11 Окт 2021 в 11:06