Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Смешанное содержимое https
Форумы портала PHP.SU » » Работа с сетью » Смешанное содержимое https

Страниц (1): [1]
 

1. Leon99 - 20 Сентября, 2016 - 22:04:45 - перейти к сообщению
Доброго времени суток!
Возникла проблема смешанного содержимого на сайте, после установки ssl сертификата, проблема в том что, на сайте все изображения со сторонних хостингов которые отдают их по http, ну и соответственно браузеры на это ругаются.
Я пробовал сделать редирект вида
https://мойсайт.ру/redirekt.php?url=http://site.com/2.jpg. Но нужного эффекта нет, браузер все равно находит http://site[dot]com/2[dot]jpg и ругается на смешанное содержимое.
Почему я начал эту тему: я нашел сайт через который редирект работает корректно вот пример
https://demo[dot]cloudimg[dot]io/s/cdn/x[dot][dot][dot]/redirect301[dot]jpg
Я уже три дня ломаю голову почему через это https://demo[dot]cloudimg[dot]io/s/cdn/x/ работает нормально и браузер не ругается, а через https://мойсайт[dot]ру/redirekt.php?url= НЕТ
Подскажите что я не так делаю, и возможно ли вообще через свой сайт сделать редирект ссылки так что бы она и на сайте (в контексте ) отображалась и браузеры не ругались?
2. Строитель - 20 Сентября, 2016 - 22:31:34 - перейти к сообщению
Leon99, я думаю, что тут можно использовать буферизацию
PHP:
скопировать код в буфер обмена
  1. // Вверху страницы прописать ob_start()
  2.  
  3. // Далее весь код вашей страницы
  4. echo '<img src="http://site.com/1.jpg" /><br />';
  5. echo '<img src="http://site.com/2.jpg" /><br />';
  6. echo '<img src="http://site.com/3.jpg" /><br />';
  7.  
  8. // В конце кода вашей страницы прописать эти две строки
  9. $content = ob_get_contents();
  10.  
  11. // И произвести замену расширения протокола
  12. echo str_replace('http', 'https', $content);
  13.  
3. Leon99 - 20 Сентября, 2016 - 23:24:24 - перейти к сообщению
дело в том что за вывод картинки отвечает скрипт, и если я вставлю все выше описанное на страницу темы эффекта не будет
вот скрипт
Спойлер (Отобразить)

В 351 строке я показал как сей час редирект делаю, страница на которой все выводится тоже не php а tpl
Посмотрите как та ссылка что я для примера оставил, где (редирект через стронний сервис) она в строке браузера отображается как
CODE (html):
скопировать код в буфер обмена
  1. https://сторонний-сервис.ру/какойто-текст/http://ссылка-на-картинку.ру/1.jpg

А если по моему редиректу открыть то остается только
CODE (html):
скопировать код в буфер обмена
  1. http://ссылка-на-картинку.ру/1.jpg

Вот я и не могу понять почему так происходит почему мой редирект из адресной строки пропадает , а сторонний нет??? Однако
4. Строитель - 21 Сентября, 2016 - 10:54:51 - перейти к сообщению
Leon99 пишет:
если я вставлю все выше описанное на страницу темы эффекта не будет
Вы всё же попробуйте.
5. Leon99 - 21 Сентября, 2016 - 16:17:13 - перейти к сообщению
Строитель пишет:
Leon99 пишет:
если я вставлю все выше описанное на страницу темы эффекта не будет
Вы всё же попробуйте.


Попробовал, не работает
просто на странице вылазиет
CODE (html):
скопировать код в буфер обмена
  1.  
  2. ob_start();
  3. //и
  4. $content = ob_get_contents(); ob_end_clean(); echo str_replace('http', 'https', $content);
  5.  


получается что я все выше перечисленное практически в html вставляю поэтому оно и не работает, может есть какой другой вариант, может как то в base64 внешнюю ссылку на картинку кодировать? я пробовал тупо с помощью firebug вставить, вроде браузер не ругается на смешанное содержимое. Некоторые тоже советовали перенести картинки себе на сервер, но это не вариант их сейчас примерно +-40к и число будет только расти.
У меня все проблема в том что за вывод js отвечает а я в нем вообще 0 (((
Теоретически понимаю как должно быть реализовано, а правильно код написать не могу.
6. IllusionMH - 21 Сентября, 2016 - 17:09:49 - перейти к сообщению
Leon99, проблема не в тексте ссылок, а в том как содержимое грузится, есоли просто возвращает https://мойсайт[dot]ру/redirekt.php 301 или 302 редирект, то содержимое всё равно будет грузится через http. Откройте Network в инструментах разработчика и убедитесь.

нужно чтобы этот скрипт умел скачать содержимое по ссылке и вернуть его браузеру на этот запрос. тогда все запросы будут через https протокол к вашему домену, а не на внешние сайты по http
7. Fart - 21 Сентября, 2016 - 18:05:40 - перейти к сообщению
Не ругаются они, а предупреждают о смешанном типе. Плохого ничего нет если данные не содержат конфиденциальной информации. Смешанный тип допускается и работает нормально в браузерах. Не нужен http? Закрывай порт 80 в настройках сервера. Если только хтаццесс, то делай редирект с хттп на хттпс.
(Добавление)
Также, если кто то принудительно грузит данные через 80 порт (по дефолту) то бишь хттп, то делай редирект на левый сайт или поисковик.
Во фронт-энде пиши запросы только через 443 порт.
В случаях чужого сайта это нормально когда данные поступают из разных протоколов. Если чужой хттп то это проблема чужого сайта.
8. Leon99 - 21 Сентября, 2016 - 18:38:01 - перейти к сообщению
IllusionMH пишет:
Leon99, проблема не в тексте ссылок, а в том как содержимое грузится, есоли просто возвращает https://мойсайт[dot]ру/redirekt.php 301 или 302 редирект, то содержимое всё равно будет грузится через http. Откройте Network в инструментах разработчика и убедитесь.

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


CODE (html):
скопировать код в буфер обмена
  1.  
  2. //вот я взял обычную картинку из яндекс картинок
  3. http://9dach.ru/wp-content/uploads/primer-chajnogo-sada.jpg
  4. //перед ней добавил
  5. https://demo.cloudimg.io/s/cdn/x/
  6. //в итоге получается
  7. https://demo.cloudimg.io/s/cdn/x/http://9dach.ru/wp-content/uploads/primer-chajnogo-sada.jpg
  8. //или
  9. https://demo.cloudimg.io/s/cdn/x/9dach.ru/wp-content/uploads/primer-chajnogo-sada.jpg
  10. //https://demo.cloudimg.io/- не мой сайт, я просто подставил ссылку
  11.  
  12.  
  13.  


Вот как организовать такое у себя на сайте?
когда я такую (двойную) ссылку вставляю на страницу, предупреждения о смешанном содержимом нет.
Если открыть страницу
CODE (html):
скопировать код в буфер обмена
  1.  
  2. https://demo.cloudimg.io/s/cdn/x/http://9dach.ru/wp-content/uploads/primer-chajnogo-sada.jpg
  3. //я вижу только один js //s3.amazonaws.com/js-cache/b1c39a67652e28aed9.js
  4. //не считая js яндекса
  5. //получается в этом  //s3.amazonaws.com/js-cache/b1c39a67652e28aed9.js дело что ли?
  6.  
9. IllusionMH - 21 Сентября, 2016 - 19:35:54 - перейти к сообщению
Leon99, так там нет редиректа, они по этой ссылке сразу отдается контент. откройте вкладку сеть и сравните ответы в своём варианте и по показанным ссылкам и не важно как они выглядят, точно так же можно передавать в гет параметре, а не пути.

Вам нужно тоже самое:
1) PHP на сервере качает изображени с ресурса из параметра, и отдаёт её в браузер (возможно можно сделать это стримами, чтобы не сильно грузить свой сервер)
2) Либо найти сторонний сервис который позволяет это сделать, ка кпоказано выше.
3) настроить apache или nginx чтобы они проксировали сторонние ресурсы за вас (см. mod_proxy)
10. Leon99 - 21 Сентября, 2016 - 21:51:21 - перейти к сообщению
IllusionMH пишет:
Leon99, так там нет редиректа, они по этой ссылке сразу отдается контент. откройте вкладку сеть и сравните ответы в своём варианте и по показанным ссылкам и не важно как они выглядят, точно так же можно передавать в гет параметре, а не пути.

Вам нужно тоже самое:
1) PHP на сервере качает изображени с ресурса из параметра, и отдаёт её в браузер (возможно можно сделать это стримами, чтобы не сильно грузить свой сервер)
2) Либо найти сторонний сервис который позволяет это сделать, ка кпоказано выше.
3) настроить apache или nginx чтобы они проксировали сторонние ресурсы за вас (см. mod_proxy)


Спасибо большое за инфу! Вот еще хотел узнать если я мод прокси поставлю тогда мне как то по другому нужно ссылки на картинки прописывать или он сам как то будет их обрабатывать? не где не могу найти информацию на русском о там как в дальнейшем с модом этим обстоят дела. Я единственное что понял что там нужно после установки указать ip сервера и шлюз просто не могу понять как он будет взаимодействовать с внешними ссылками? и нужно ли еще что то по мимо установки делать.

 

Powered by ExBB FM 1.0 RC1