как только сайт может получить доступ из iframe - PullRequest
0 голосов
/ 17 декабря 2018

Может кто-нибудь, пожалуйста, помогите мне?У меня есть эти сайты: domain.com, domain.com/site2, domain.com/site3, и site4.domain.com.Сайт 1,2 и 3 - это WordPress, а site4 - это сайт php.На сайте 1 (domain.com) я создаю боковую панель, и моя цель состоит в том, чтобы при доступе пользователей ко всем моим сайтам они все еще могли использовать мою боковую панель, поэтому я встраиваю / iframe site2,3 и 4 на страницу сайта 1, используя предварительный iframe.профи.Как сделать так, чтобы сайты 2,3 и 4 можно было открывать или открывать только с сайта 1?Например, я вставляю / вставляю сайт 2 в domain.com/mypage, чтобы, когда пользователь открывает domain.com/mypage, сайт 2 открывался через iframe.Но когда пользователь получает прямой доступ с domain.com/site2, он перенаправляет на site1 (domain.com/mypage) или видит только пустую страницу.Я попытался изменить .htaccess следующим образом:

{

order deny,allow
deny from all
allow from domain.com/site2/12345

}

и в iframe: [iframe src="domain.com/site2/12345"]

, но он не работает.Когда я обращаюсь напрямую через url domain.com/site2, он показывает 404 на site1, а когда я получаю прямой доступ к domain.com/site2/12345, он может открыть site2, но в iframe он показывает 404 site1 ... (не используйте https: // whe использовать https: // он показывает 404 site1, но когда используется только www.domain.com/site2/12345, он может открыть site2)

1 Ответ

0 голосов
/ 17 декабря 2018

Я думаю, что знаю, что вы пытаетесь сделать, и в этом случае я думаю, что это сработает, но я не проверял это (подайте заявку на другие iframes и домены, как считаете нужным).

site 2/3 / 4.com

if (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == 'http://domain1.com') {
    include_once('sidebar.php');
} else {
    header('Location: http://domain1.com');
}

site1.com

<iframe src="http://domain2.com" frameborder="0"></iframe>

Возможно, я неправильно понял требования, но это должнопоказать содержимое боковой панели, если есть реферер, и если нет, он будет перенаправлен на domain1.com.

Более надежный способ (в случае, если реферер по какой-то причине не заполнен) может заключаться в добавлении URLпараметр атрибута iframe src, например

<iframe src="http://domain2.com?iframe=1" frameborder="0"></iframe>

, а затем проверьте это

if (isset($_GET['iframe']) && $_GET['iframe'] == '1') {
    include_once('sidebar.php');
} else {
    header('Location: http://domain1.com');
}

, но это также легко манипулировать, лучше может быть найтивместо этого использовать токен / хэш.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...