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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Смешанное содержимое https

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Скрыть смешанное содержимое
Leon99
Отправлено: 20 Сентября, 2016 - 22:04:45
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




Доброго времени суток!
Возникла проблема смешанного содержимого на сайте, после установки 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= НЕТ
Подскажите что я не так делаю, и возможно ли вообще через свой сайт сделать редирект ссылки так что бы она и на сайте (в контексте ) отображалась и браузеры не ругались?
 
 Top
Строитель
Отправлено: 20 Сентября, 2016 - 22:31:34
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




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.  
 
 Top
Leon99
Отправлено: 20 Сентября, 2016 - 23:24:24
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




дело в том что за вывод картинки отвечает скрипт, и если я вставлю все выше описанное на страницу темы эффекта не будет
вот скрипт
Спойлер (Отобразить)

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

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

Вот я и не могу понять почему так происходит почему мой редирект из адресной строки пропадает , а сторонний нет??? Однако
 
 Top
Строитель
Отправлено: 21 Сентября, 2016 - 10:54:51
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Leon99 пишет:
если я вставлю все выше описанное на страницу темы эффекта не будет
Вы всё же попробуйте.
 
 Top
Leon99
Отправлено: 21 Сентября, 2016 - 16:17:13
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




Строитель пишет:
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 (((
Теоретически понимаю как должно быть реализовано, а правильно код написать не могу.
 
 Top
IllusionMH
Отправлено: 21 Сентября, 2016 - 17:09:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Leon99, проблема не в тексте ссылок, а в том как содержимое грузится, есоли просто возвращает https://мойсайт[dot]ру/redirekt.php 301 или 302 редирект, то содержимое всё равно будет грузится через http. Откройте Network в инструментах разработчика и убедитесь.

нужно чтобы этот скрипт умел скачать содержимое по ссылке и вернуть его браузеру на этот запрос. тогда все запросы будут через https протокол к вашему домену, а не на внешние сайты по http
 
 Top
Fart
Отправлено: 21 Сентября, 2016 - 18:05:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




Не ругаются они, а предупреждают о смешанном типе. Плохого ничего нет если данные не содержат конфиденциальной информации. Смешанный тип допускается и работает нормально в браузерах. Не нужен http? Закрывай порт 80 в настройках сервера. Если только хтаццесс, то делай редирект с хттп на хттпс.
(Добавление)
Также, если кто то принудительно грузит данные через 80 порт (по дефолту) то бишь хттп, то делай редирект на левый сайт или поисковик.
Во фронт-энде пиши запросы только через 443 порт.
В случаях чужого сайта это нормально когда данные поступают из разных протоколов. Если чужой хттп то это проблема чужого сайта.

(Отредактировано автором: 21 Сентября, 2016 - 18:13:22)

 
 Top
Leon99
Отправлено: 21 Сентября, 2016 - 18:38:01
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




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.  
 
 Top
IllusionMH
Отправлено: 21 Сентября, 2016 - 19:35:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Leon99, так там нет редиректа, они по этой ссылке сразу отдается контент. откройте вкладку сеть и сравните ответы в своём варианте и по показанным ссылкам и не важно как они выглядят, точно так же можно передавать в гет параметре, а не пути.

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


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Сент. 2016  


Помог: 0 раз(а)




IllusionMH пишет:
Leon99, так там нет редиректа, они по этой ссылке сразу отдается контент. откройте вкладку сеть и сравните ответы в своём варианте и по показанным ссылкам и не важно как они выглядят, точно так же можно передавать в гет параметре, а не пути.

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


Спасибо большое за инфу! Вот еще хотел узнать если я мод прокси поставлю тогда мне как то по другому нужно ссылки на картинки прописывать или он сам как то будет их обрабатывать? не где не могу найти информацию на русском о там как в дальнейшем с модом этим обстоят дела. Я единственное что понял что там нужно после установки указать ip сервера и шлюз просто не могу понять как он будет взаимодействовать с внешними ссылками? и нужно ли еще что то по мимо установки делать.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB