https и изображения с другого сайта. Как удалить предупреждения для изображений http, используя php или javascript без изменения файла .htaccess? - PullRequest
3 голосов
/ 12 февраля 2012

У меня есть сертификат ssl на моем сайте.Как только изображения загружаются на страницу с другого сайта, это приводит к появлению предупреждений типа «, страница содержит как защищенные, так и незащищенные элементы », поэтому необходимо нажать кнопку «ОК» или вы увидите «разорванное» соединение ssl в браузере.,Один из способов избежать этих предупреждений - использовать страницу http вместо https, правильно?

Но, насколько я знаю, есть другой способ исключить эти предупреждения с помощью php или просто с помощью javascript.Я считаю, что изображения загружаются во временную папку на моем сервере и загружаются как изображения https одновременно.Кто-нибудь может сказать мне лучший способ сделать это?Просмотр форума мне не сильно помог.Спасибо.

Итак, как загрузить

<?php echo '<img src="http://www.not_my_site.com/image.jpg" alt="">'; ?>

без предупреждений на моей странице https://my_site.com/index.php?

Ответы [ 2 ]

3 голосов
/ 12 февраля 2012

Вы не можете переоценить ошибку, так как это браузер.

Единственный способ - обернуть эти вызовы, используя вызов https на вашем сайте.Что-то вроде:

<?php echo '<a href="https://my_site.com/external.php?resource=http://www.not_my_site.com/image.jpg" alt="">'; ?>

Вам нужно будет написать скрипт external.php, чтобы сделать запрос от имени клиента, а затем вернуть содержимое через существующее SSL-соединение. Это необходимо только для внешних HTTP-ресурсов.

Процесс будет работать следующим образом:

  1. Веб-браузер конечного пользователя делает запрос HTTPSв ваш скрипт external.php.
  2. Проверьте сохраненную копию ресурса.Если он кешируется, перейдите к шагу 6, возвращая кешированный ресурс.
  3. Ваш сервер перенаправляет вызов HTTP-ресурса, указанного как resource.
  4. Удаленный сервер.отвечает на запрос.
  5. Сохраните копию ресурса для кэширования.
  6. Сценарий external.php вашего веб-сервера затем возвращает этот ответ через соединение SSL.

Веб-браузер делает только 1 запрос, ваш веб-сервер просто должен сделать дополнительный.

Это единственный способ избавиться от сообщения.


Выглядит еще проще для получения изображения: используйте curl для загрузки файла косвенного изображения

1 голос
/ 12 февраля 2012

Это происходит из-за того, что вы совершаете небезопасные (HTTP) звонки с защищенной страницы (HTTPS).

попробуйте изменить код на:

<?php echo '<a href="https://www.not_my_site.com/image.jpg" alt="">'; ?>
...