0 Пользователей и 1 Гость просматривают эту тему.
  • 10 Ответов
  • 1160 Просмотров
*

Liss

  • Захожу иногда
  • 238
  • 10 / 0
SSL
« : 04.07.2016, 18:57:16 »
Задача, которую не получается решить:
A. корзина всегда принудительно по https
B. весь остальной сайт всегда принудительно по http

очевидные решения, которые не работают / не подходят
1. галка SSL в настройках VM - эта настройка в сочетании с правилом для .htaccess для редиректа всего остального на http приводит к тому, что корзина не открывается - отправляет на главную. Пробовал вписывать исключения RewriteCond %{REQUEST_URI} !^/cart.html - не помогает
2. отказаться от задачи B - корзина в шаблон ведь вписана, все ссылки со страницы корзины (например, из главного меню) имеют префикс https - это означает что у каждой страницы будет двойник (по адресу с http и по адресу с https) рано или поздно поисковик двойников понахватет, что приведет к ошибкам индексации ("двойники" - это ведь ошибка)
3. сделать принудительно https вообще для всего – сервисы для увеличение конверсии (онлайн консультант, автодозвон и т.д) за шифрование хотят денег, очень много денег – суммы соизмеримы со стоимостью аренды хорошего VPS (а ведь все внешние "плюшки", подтягиваемые на сайт - вот такие сервисы, счетчики и т.д -  должны также шифроваться, если сайт защищенный, иначе они блокируются браузером, как небезопасные). Плюс под большим вопросом, а смогут ли прайс агрегаторы работать по SSL (фотографии им ведь придется по https у меня загружать). Я.Маркет, наверняка, сможет без проблем, а вот другие не такие крупные, но очень важные с точки зрения отдачи по трафику...
4. забить на SLL вообще – не вариант, у Googleаесть четкие требования к сайту, размещающему рекламу в их проектах (и речь не про эдвордс). Собственно именно Google и приостановил со мной сотрудничество из-за отсутствия шифрования в корзине (именно тут человек вводит свои личные данные, и эта область сайта должна быть безопасной)

Может, кто реализовывал?
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: SSL
« Ответ #1 : 05.07.2016, 00:18:25 »
Цитировать
Может, кто реализовывал?
Тут придется немного переписать ядро..
Ну там сами смотрите...
Как Вашу траблу решить === это оправка AJAX через форму..
В общем где то так..  а в обще  то это распространенная проблема..
Завтра у друга спрошу он недавно делал...

Но тут вот в чем вопрос..
Цитировать
A. корзина всегда принудительно по https
B. весь остальной сайт всегда принудительно по http
Простите а зачем так ?

Объясните зачем.. Я вам помогу.!
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: SSL
« Ответ #2 : 05.07.2016, 00:26:43 »
В обще интересно ...
Зачем действительно вам ssl ?

Вы что думаете наверное от налоговой уйти .. ))
Или клиенту .. якобы безопасность создать (если торгуете "наркотики, оружие, порно.... ;D")

Зачем такая сложность .. Просто перевидите весь сайт в ssl или ваще не трогайте эту тему..

Прошу прощения, может жестко написал ну мне не понятно // 
Вы сами понимаете, что такое протокол https// ??
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: SSL
« Ответ #3 : 05.07.2016, 00:35:20 »
Я сам отвечу на свой вопрос просто что бы было понятно Вам...
В Европе не принято рассчитываться наличными.
Платят с карты.
Вот и все.
и если у ВАС подпись ниже среднего... идем гуляем...
Если нет я не парюсь и сразу перевожу..

А вот теперь вопрос.
Цитировать
B. весь остальной сайт всегда принудительно по http
Если я фанат SSL тогда сразу досвидос..
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: SSL
« Ответ #4 : 05.07.2016, 00:43:52 »
Вот нашел..
Цитировать
если сайт защищенный
Не от хакера ... или прочее..
Это значит что если вы налажаете вас найдут.!
*

Liss

  • Захожу иногда
  • 238
  • 10 / 0
Re: SSL
« Ответ #5 : 05.07.2016, 12:56:10 »
да в общем на все вопросы я ответил в первом же посте
зачем ССЛ - требование Гугла

защищенный сайт - имеется в виду передача данных от сервера к клиенту и наоборот идет по зашифрованному каналу. каких данных? - персональных данных пользователя - его ФИО, мыло. телефон - это то, что он оставляет на сайте при оформлении заказа. у нас, к слову, есть еще закон о сборе и хранении персональных данных. похоже, Google требует его соблюдения, если хочешь работать с Гуглом

"перевидите весь сайт в ssl" - ответил очень подробно в пункте 3 в первом посте

"это оправка AJAX через форму" - вот это не понял... зачем? мне нужно, чтоб моя корзина (даже не корзина с простым перечнем товара, а страница оформления заказа site.ru/cart.html) открывалась по защищенному протоколу, причем даже если ее в ручную пытаешься вызвать http://site.ru/cart.html должен быть принудительный редирект на https://site.ru/cart.html)
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: SSL
« Ответ #6 : 05.07.2016, 14:47:03 »
Ок. Частично понял Вас..

Цитировать
причем даже если ее в ручную пытаешься вызвать http://site.ru/cart.html должен быть принудительный редирект на https://site.ru/cart.html

А простите Вам не кажется что это совсем 2 разных сайта...
1.  http://site.ru/cart.html
2.  https://site.ru/cart.html

Или я ошибаюсь.. ?

А если нет.. То как бы нам куки забрать.. с сессии.  А?

Все это от того что только форма обратной связи много бобла попросила..?
Так наймите программера тот вам накатает подобное .. да придется заплатить но 1 раз.
Не знаю... что лучше.. Переписать весь сайт или 400-500 строчек кода..  (просто взять и написать.)



*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: SSL
« Ответ #7 : 05.07.2016, 15:16:32 »
Я как то видел у Приват Банка есть сервис.. обратной связи.
Ну или вот тут я делал в верх страницы заказать звонок. rmedia.com.ua
Ну только ребята с Украины. Так что в Россию наверное не позвонят.. )) Да и незачем..

В общем работает это так..
Есть компонент RSForm
Написал плаг к нему можно любой форме смс при получении отослать..
Щас еще пока как бы в beta версии ....
Но сам плаг будет бесплатный. СМС платные.


Мне вот что не понятно...
Это если сайт подписал ssl то все можно жрать и давить бабло. )))??

Ну это наша страна. И мы действительно Великие Люди.!
Если живем в стране где вот так все через одно полезное место.. ))))))))))))))

ps если кому нужен сертификат.
 Вот.
*

Liss

  • Захожу иногда
  • 238
  • 10 / 0
Re: SSL
« Ответ #8 : 05.07.2016, 17:55:19 »
Код
Или я ошибаюсь.. ?
и ошибаетесь, и нет
с технической точки зрения - разные, на разном порту даже сидят

но если я сейчас кину товар в корзину и перейду к оформлению на http://... - все норм. Зайду в настройки VM и поставлю галочку "Включить SSL" и снова фо фронтенде перейду к оформлению, то меня пробросит уже на https://... но содержимое корзины никуда не денется, т.е. с сессиями все ОК
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: SSL
« Ответ #9 : 06.07.2016, 12:11:29 »
ОК.
все понятно.
И теперь по порядку, что не работает ?

за отправку и обработку корзины отвечает файл vmprices.js
в нем есть такая глобальная переменная vmSiteurl

При всех запросах ставиться впереди URL // 

В общем давайте делать.
*

Liss

  • Захожу иногда
  • 238
  • 10 / 0
Re: SSL
« Ответ #10 : 04.08.2016, 21:03:16 »
итак, решение-костыль
В глобальных настройках Жу есть возможность принудительно редиректить весь сайт на https протокол (или только админку). Если глянуть в html-код данного выпадающего списка, то можно увидеть что для варианта "Включить SSL - весь сайт" параметр force_ssl передается со значением 2

открываем /includes/router.php
строки 35-39
Код: php
if ($app->getCfg('force_ssl') == 2 && strtolower($uri->getScheme())!= 'https') {
//forward to https
$uri->setScheme('https');
$app->redirect((string)$uri);
}
именно этот кусок осуществляет принудительный редирект на https , если force_ssl == 2

после этого кода вставляем
Код: php
else if ($app->getCfg('force_ssl')!= 2 && strtolower($uri->getScheme())!= 'http' && !preg_match('/.*(opc)|(cart)|(orders).*/si', $uri)) {
    $uri->setScheme('http');
$app->redirect((string)$uri);
}
т.е. с точностью до наоборот: если настройка не включена force_ssl != 2 то принудительно редиректим все на http

в настройках VM ставим галку "Включить SSL (рекомендуется)" (это не глобальный параметр, касается только VM и только области оформления заказа)
чтобы на странице оформления заказа router не кидал на http, в нем прописано исключение: вот этот кусок
Код: php
!preg_match('/.*(opc)|(cart)|(orders).*/si', $uri)
в этом куске URL проверяется на наличие в нем слов cart (есть такое слово в адресе корзины), opc (страница "спасибо", в моем случае это слово есть в URL, когда используется компонент One Page Checkout), orders (это зона просмотра пользователем своего заказа по номеру и пин-коду, которые приходят к покупателю после оформления заказа.)

на выходе мы имеем:
  • весь сайт принудительно по http (даже если пытаться открыть по https)
  • корзина (и чекаут, и заказы) принудительно по https (даже если пытаться открыть по http)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться