форум vBSupport.ru > vBSupport.ru > Гурушник > kerk
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
kerk
k0t
 
kerk's Avatar
Default Проксирование изображений с внешних источников - Proxy external images
14

сначала немного злой преамбулы...
===
В связи с тем, что гугол заставил многих перейти с HTTP на HTTPS, у этих "многих" добавилось головняка (помимо получения/подключения сертификатов, телодвижений в хтаксесс и/или апаче/нгинкс) с контентом в постах, который по прежнему передается через "небезопасный" (по мнению супер сцуко компетентного гугола) протокол
и если свои ссылки можно поправить парой запросов в БД, то основная проблема, что делать с теми имгхостингами, которые проигнорили или забили на "китайские предупреждения" гугола и отдают загруженные картинки через HTTP?

скрипт из аттача, на какое то время решит проблему (ну пока гугол не заставит весь интернет перейти на https)
он проксирует все картинки с внешних ресурсов "через себя", т.е. гугол будет видеть в постах ссылки с вашим https протоколом, хоть картинка и будет находиться на ресурсе с http

пара скринов для примера


в данном случае, yandex - внешний источник, по отношению к моему сайту/форуму/ресурсу
поэтому картинки из этого источника передаются через свой скрипт
================


здесь, картинка передается через протокол HTTPS
передаем ее в браузер не используя свой скрипт
================


в этом случае, ресурс vbsupport.ru добавлен в "белый список" (см. пояснения ниже)
поэтому и передается как есть, без использования прокси-скрипта
================


в этом случае, картинка "у себя", поэтому показываем ее как есть


для использования скрипта, понадобится редактирование функции handle_bbcode_img_match() из файла парсера ббкодов воблы includes/class_bbcode.php
итак...
загружаем скрипт imgproxy.php (из аттача) в корень форума
находим указанную выше функцию и заменяем ее всю, на этот код
PHP Code:
    function handle_bbcode_img_match($link$alt '')
    {
        
$link $this->strip_smilies(str_replace('\\"''"'$link));
        
// remove double spaces -- fixes issues with wordwrap
        
$link str_replace(array('  ''"'), ''$link);
        static 
$current_url$current_host$allowed;
        
$do_proxy true;
        if (!isset(
$current_url))
        {
            
$current_url = @parse_url($this->registry->options['bburl']);
            
$current_host preg_replace('#:(\d)+$#'''$current_url['host']);
            
$allowed = array();//preg_split('#\s+#', $this->registry->options['kr_external_links_whitelist'], -1, PREG_SPLIT_NO_EMPTY);
            
$allowed[] = preg_replace('#^www\.#i'''$current_host);
            
$allowed[] = preg_replace('#^www\.#i'''$current_url['host']);
        }
        
$target_url_parsed = @parse_url($link);
        
$target_url $target_url_parsed['host'];
        if(
$target_url_parsed['scheme'] == 'https')
        {
            
$do_proxy false;
        }
        if(
$do_proxy)
        {
            foreach (
$allowed AS $host)
            {
                if(
stripos($target_url$host) !== false)
                {
                    
$do_proxy false;
                    break;
                }
            }
        }
        if(
$do_proxy)
        {
            
$link $this->registry->options['bburl'] . '/imgproxy.php?i=' rawurlencode($link);
        }
        return 
'<img src="' .  $link '" border="0" alt="" />';
    } 
обратить внимание на строку
PHP Code:
$allowed = array();//preg_split('#\s+#', $this->registry->options['kr_external_links_whitelist'], -1, PREG_SPLIT_NO_EMPTY); 
кусок кода закомментирован
это для тех, у кого установлен хак Закрытие/редирект внешних ссылок
и если таки он установлен, можно раскомментировать строку*, что бы была возможность оптимизации работы скрипта
к примеру прописывать в настройку сервисы картинок, которые работают с протоколом HTTPS
чем меньше картинок проходит через скрипт и передается напрямую, тем быстрей загружается страница ресурса

*заменить всю строку на эту
PHP Code:
$allowed preg_split('#\s+#'$this->registry->options['kr_external_links_whitelist'], -1PREG_SPLIT_NO_EMPTY); 


ссылка на новую версию скрипта
Для vB3.8.x Проксирование изображений из внешних источников + кеширование (Proxy external images + cache) vB 3.8.x (11.5 Кб)
Для vB4.2.x Проксирование изображений из внешних источников + кеширование (Proxy external images + cache) vB 4.2.x (10.4 Кб)

Внимание!
Поддержка скрипта оказывается на условиях Donate:
скачали скрипт И оплатили любую сумму на ваше усмотрение - поддержка есть
в противном случае, все вопросы по данному скрипту игнорируются
Вэбмани
Paypal в ЛС
Paypal USD
Paypal RUB
Paypal EUR
Attached Files
File Type: php imgproxy.php (6.1 KB, 66 views)
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Luvilla
Гость
Default

Quote:
Originally Posted by kerk View Post
В связи с тем, что гугол заставил многих перейти с HTTP на HTTPS, у этих "многих" добавилось головняка (помимо получения/подключения сертификатов, телодвижений в хтаксесс и/или апаче/нгинкс) с контентом в постах, который по прежнему передается через "небезопасный" (по мнению супер сцуко компетентного гугола) протокол
какой слог...
я примерно то же самое бурчу, когда перевожу очередной клиентский форум на HTTPS

эта падло (эти, Гугол, Яшко, прочие) паразитируют на нас, на сайтостроителях, они без нас - никто и звать их никак
и они же теперь нам диктуют, как жить...
 
 
kerk
k0t
 
kerk's Avatar
Default
2

немного оптимизировал код функции парсинга ббкодов
убрал регулярку (проверка расширений изображений) - картинка может быть динамической (так же передаваться через скрипт)
добавил условие-проверку протокола - даже если домен не в "белом списке", но картинка передается через HTTPS протокол, не использовать свой скрипт, а передавать ее в браузер напрямую
 
 
Kurbatov
Эксперт
vBSponsor
 
Kurbatov's Avatar
Default
1

Оффтоп
 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by Kurbatov View Post
Когда vbsupport.ru перейдет на https?
а зачем?
 
 
Smalesh
В Черном списке
Default
3

Quote:
Originally Posted by kerk View Post
а зачем?
Ну имхо, что форум должен выступать образцово-показательным, в т.ч. в техническом плане. SSL сейчас - это востребовано, нравится этому кому или нет, просто примите как факт. Я сам плююсь, т.к. много где он реально не нужен. Но не за горами момент, когда без дополнительных телодвижений на ресурс не попадешь - а это уже печалька.
 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by Smalesh View Post
когда без дополнительных телодвижений на ресурс не попадешь
но к этим "телодвижениям" подталкивает гугол?
почему пиндосский поисковик решает, что хорошо и что плохо для ресурса?
 
 
Smalesh
В Черном списке
Default
0

Quote:
Originally Posted by kerk View Post
но к этим "телодвижениям" подталкивает гугол?
почему пиндосский поисковик решает, что хорошо и что плохо для ресурса?
А почему только гугл? https://blog.mozilla.org/security/20...n-secure-http/
Между прочим засранцы из Mozilla сделали больше вреда, сейчас они всячески проталкивают на рынок Let's Encrypt, хотя на самом деле это редкое дерьмо в красивой обвертке.

Вот почему если Symantec лажает раз за разом, то им ничего не бывает. А если лажает WoSign, так их сразу топят? Почему скандалы с фирмами, которые выпускают оборудование для перехвата SSL-трафика, всячески заминают (CNNIC, ANSSI - это то что попало в сеть)?
 
 
kerk
k0t
 
kerk's Avatar
Default
1

на эти вопросы я не могу дать ответ, т.к. не владею информацией
я только знаю, что некая корпорация возомнила себя пупом всея интернета и диктует условия
 
 
artscripts
Эксперт
 
artscripts's Avatar
Default
0

kerk, Ну а как им не диктовать. Без поисковика, наши сайты никто не найдет, ну только избранные у кого в закладках. А если ты его только создал, рекламу о том, что есть сайт не на заборе же бумажки клеить. ))) Вот они и пользуются. Как бы мы не ругались, без поисковиков, мы сами не чего не можем, не показать людям, не найти себе нужную информацию.
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 10:39 AM.


Powered by vBulletin® Version 3.7.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...