Если вы не хотите, чтобы внешний сайт был поднят, я бы предложил не использовать iframe вообще. Вы можете заставить php разместить содержимое внешнего сайта непосредственно на текущей странице, например, с помощью file_get_contents() Это также позволяет использовать простую форму безопасности, так как вы можете получать данные аутентификации POST с существующего сервера на удаленный один:
$opts = array('http' =>
array(
'method' => 'POST',
'header' => "Content-Type: text/xml\r\n".
"Authorization: Basic ".base64_encode("$https_user:$https_password")."\r\n",
'content' => $body,
'timeout' => 60
)
);
$context = stream_context_create($opts);
$url = 'https://'.$https_server;
$result = file_get_contents($url, false, $context, -1, 40000);
(пример из секции комментариев PHP локон руководство по file_get_contents 1)
более сложный путь (он же лучше в долгосрочной перспективе, если у вас есть время, чтобы понять это) является для использования curl вы можете увидеть, как получить результат POST с помощью кода с этого вопроса: PHP + curl, HTTP POST sample code?
Edit: только что видел ваш комментарий:
Проблема с этим подходом является то, что внешний сайт загружается в IFRAME выполняет множество запросов Аякса страниц, находящихся на одном сервере.
Нет ничего, что помешало бы вам выполнить запросы ajax на странице. Конечно, запросы должны поступать из того же домена по умолчанию, но есть способы вокруг этого:
Есть скрипт PHP на вашей собственной странице выступать в качестве посредника: в основном это будет проходить Аякс к внешний сервер, а затем отправить ответ обратно (вверх, просто, обратная сторона, дополнительный трафик генерируется в результате запроса обрабатывается дважды)
Cross-Origin совместного использования ресурсов https://developer.mozilla.org/en/docs/HTTP/Access_control_CORS), в основном, вы говорите клиенту, что вы будете использовать ресурсов с другого сайта. Таким образом, браузеры не будут блокировать его как потенциальный захват.
(см http://css.dzone.com/articles/ajax-requests-other-domains)
Преимущество этого он скрывает источник фрейма, и позволяет использовать проверку подлинности между двумя доменами. В сочетании с .htaccess он может быть достаточно безопасным, так как вы можете использовать .htaccess, чтобы доступ к этой странице разрешен только для вашего домена/доменов, работающих под вашим кодом.
Если вы должны использовать iframe, вы должны иметь аутентификацию, так как в противном случае он будет открыт для всего мира, так как клиенту необходимо напрямую обратиться к сайту. Вы можете получать данные POST в iframe (см. Sending data through post method to an iframe или How do you post to an iframe?), который включает в себя настройку iframe в качестве формы, а затем отправку формы (которую вы можете сделать автоматически через javascript) для получения результатов POST.
Поскольку это должно быть сделано на стороне клиента, оно не только предоставляет страницу, на которую нужно перейти, но и какие запросы отправлять. Независимо от того, является ли это проблемой, зависит от вас и от каких пользователей вы ожидаете использовать свою программу.
Что касается curl, завиток не решит проблему с вызовами iframe и ajax как таковой, но это более эффективная и гибкая команда/структура url/webpage, чем file_get_contents.
Если у внешнего сайта нет безопасности, то нет смысла –
У внешнего сайта есть/может быть безопасность - вопрос заключается в том, как выполнить защиту на внешнем сайте для работы с безопасностью с родительского сайта? Как заблокировать src в iframe от прямого доступа? – oneiros
http://stackoverflow.com/questions/44509/single-sign-on-across-multiple-domains –