| Цитата |
|---|
| Дмитрий Загайнов написал: Вам не удалось выяснить, кто вставил этот код? Может хостер? |
|
|||
|
|
|
|
Муслим Садыгов, нужно смотреть логи в момент создания assets
|
|
|
|
|
Вполне возможно, что уже начались целевые атаки на основе поиска уязвимостей не АСПРО, а на основе анализа кода конкретного проекта, который мог быть скачан во время предыдущего заражения. |
|||||
|
|
|
Вот эта запись должна каждую минуту проверять агенты. |
|||||
|
|
|
|
|||
|
|
|
|
Александр, /ajax/js_error.txt удалён?
|
|
|
|
|
|
|||
|
|
|
|
|||
|
|
|
|
|||||
|
|
|
Это всё хорошо, но проверить наличие уязвимостей в аспро всё равно необходимо, даже если в логах 404. Если вы что-то предприняли и пытаетесь проверить сработало ли, то сначала ждёте посещение файлов аспро (корзины, form, error_log_logic.php и т.д), а потом проверяете наличие новых файлов через bash (на данный момент это новые файлы в папке ajax, а также новые index.php в самых разных директориях сайта, но потом этот принцип изменится скорее всего). Мне в этом помогает git на проекте. Можно какую-нибудь оповещалку заколхозить при попытке создания или изменения файлов проекта.
|
|||||
|
|
|
|
Я полагаю все эти файловые и sql менеджеры размещенные у меня на сервере в файлах типа ajax/7909e3e68924.php или e3e68/index.php в кол-ве 50шт представляют собой "товар". Человек взломал, разместил и продаёт эти доступы в даркнете или просто передал их. А покупатели ссылок, доступов: кто-то порнушные ссылки вставил, чтобы поднять их в поиске или опустить наш сайт в поиск или просто пыль в глаза бросить, чтобы скачать всю базу и т.д...
|
|
|
|
|
Поэтому если этого файла у вас нет, то еще не значит что у вас не было взлома. Если в логах есть хоть один ответ 200 к файлам типа ajax/7909e3e68924.php или e3e68/index.php, то сайт взломан и злые люди получили доступ ко всем файлам и к подключению к базе. Я на пустом сервере пооткрывал многие свои вредные файлы - это разные файловые менеджеры и sql менеджеры. |
|||
|
|
|
я добавил false в условия elseif($form_id == 'TABLES_SIZE' && $url_sizes && false): if($formType == 'CRM' && false) { а в error_log_logic.php закомментировал вывод ошибки
|
|||||
|
|
|
|
Дмитрий Дмитрий, у меня около 50 новых файлов разбросанных по всему проекту. upload cache resize_cahe modules templates. Злоумышленник может позднее зайти по любому пути на сайт и запустить ранее отложенный код. Рекомендую проверить сайт на изменения файлов и на новые файлы начиная с 29 января. Кроме папок managecahce cache html_pages и resize_cahe. Их под снос. resize_cahe и html_pages если болезненно удалять как в моём случае, то в них просто найти все файлы отличные от графических, html и проверить их.
|
|
|
|
|
|
Кто-нибудь анализировал вредноносный код? Кроме порнушных сайтов к нам загрузили файловый менеджер, через который могли скачать все файлы проекта от пользователя bitrix. В том числе и файлики dbconn settings, в котором содержатся логин и пароль от базы. И соответственно злоумышленники могли скачать всю БД с заказами, паролями и прочим.
Что по паролям пользователей? Они в зашифрованном виде? При скачивании базы они смогут получить пароли? Заказы и персональные данные по-любому утекут в сеть. Вопрос с паролями? |
|
|
|
|
|
Теоретически не получилось. Практически сработало это
Придётся перед ресайзом скачивать оригинал из облака во временный файл. После выполнения этого обработчика, запустится ResizeImageFile и она удалит временный файл. |
|||||
|
|
|
|
В init.php
Попробуйте этот вариант. Модуль облака использует эти события чтобы загружать ресайз в облако. Если мы перехватим эти события и вернём true, то главный модуль пропустить обработчики модуля clouds и ресайз будет локальным. Теоретически |
|||
|
|
|
|
Артем Житник, Здравствуйте. Получилось решить проблему с отложенным ресайзом в облаке?
Я нашёл настройку COption::GetOptionString("clouds", "delayed_resize") в файле modules/clouds/default_option.php. Но судя по всему это какая-то заготовка, а дальше нужно самому городить функционал по отложенному ресайзу. При включении это опции delayed_resize, фактический ресайз не происходит, а только происходит формирование ссылки в облаке. Страница сайта загружается без картинок, с пустыми ссылками на облако. Непонятное поведение. Логично же что пока картинка не попала в облако нужно выдавать либо оригинал изображения, либо ресайз сделанный временно локально. Но система формирует ссылку, добавляет запись в таблицу b_clouds_file_resize с error_code = 2. Планирую попробовать отловить эту ситуацию в событиях OnBeforeResizeImage или OnAfterResizeImage и заменить ссылку на оригинал либо на ресайз сделанный локально (после загрузки в облако его надо удалить). И посмотреть сколько времени это займёт (беспокоит лишнее обращение к таблице b_clouds_file_resize) В модуле clouds есть такая функция ResizeImageFileCheck. Она загружает картинку в облако и меняет error_code на 9. Думаю как-то вызывать эту функцию к каждой картинке через ajax/post при посещении посетителя, но без загрузки на выданную страницу. На cron или на агента сажать не хочется. Может быть есть другие более разумные варианты? если на странице 50 фото, то 50 запросов от посетителя тоже не очень. |
|
|
|
|
|
Нашёл js скрип на размещение с n по m с повторениями. Перевёл в php. Если вбивать 3-4 слова, при поиске по 2-3 полям, то получается от 10 до 50 комбинаций и филтьтров с условием ИЛИ. Всё работает и ищет безошибочно, но естественно тормозит и долго грузится по 10-30 секунд. Поэтому пошёл по запасному пути (костыль): в БД продублировал все ариткулы и поставщиков в торговые предложения и сделал обычный фильтр:
(name = %слово1% или артикул = %слово1% или поставщик= %слово1%) и (name = %слово2% или артикул = %слово2% или поставщик= %слово2%) и (name = %слово_n% или артикул = %слово_n% или поставщик= %слово_n%) |
|
|
|
|
1) Один простой без торговых предложений: NAME = "Матрас Юниор Детский", VENDOR="фабрикаМатрасов1" 2) второй товар пусть будет с 3 торговыми предложениями. Сам товар (в таблице выводится не должен, т.к. я хочу выводить только его sku) NAME = "Матрас Взрослый", VENDOR="фабрикаМатрасов1" и его sku 2.1) NAME = "Матрас Взрослый 200*90", VENDOR=false 2.2) NAME = "Матрас Взрослый 200*120", VENDOR=false 2.3) NAME = "Матрас Взрослый 200*140", VENDOR=false При вводе в поиск "Матрас фабрикаМатрасов1" сейчас выводится всё: и 1 и 2.1 и 2.2 и 2.3 что и было задуманно А еще мне нужно чтобы на запрос "Матрас фабрикаМатрасов1 200" выводились 2.1 2.2 2.3. Вот и думаю как это сделать |
|||||
|
|
|
|
Здравствуйте. Помогите решить загадку. Какую логику можно придумать для ситуации ниже? Нужно сделать поиск по трём полям, одно из которых у SKU, а еще 2 у товара.
Сделал в админке страничку для продавцов-консультантов с прайс-листом и остатками и возможностью быстрого поиска. Торговый каталог состоит из двух инфоблоков: товары (IBLOCK_ID = 129) и их SKU (IBLOCK_ID = 130). В первом есть простые товары (TYPE == 1) и товары со SKU (TYPE == 1) html-таблица через main.ui.filter и main.ui.grid. Колонки "Имя", "Поставщик", "Артикул" + 5 колонок с остатками по магазинам и цены. В Таблицу вывожу инфу следующим образом: Сначала один CIBlockElement::GetList по товарам, а потом если это товар со sku, то CIBlockElement::GetList по каждому такому товару. Примерно так:
Получается в таблице простые товары + SKU. И нужно искать сразу по полям/свойствам NAME PROPERTY_VENDOR PROPERTY_ARTICLE Фильтр $arFilterElement и $arFilterSKU формирую вот так:
Поиск только по 3 полям "Наименование", "Поставщик Товара", "Артикул". Отдельный фильтр на каждое поле не подходит. Нужен именно поиск. Если запросить без размера (в наименовании sku) "Матрас1 Фабрика1 Артикул1", то всё находит верно Если запросить с размером (в наименовании sku) "Матрас1 Размер1 Фабрика1 Артикул1", то естественно не находит, так как в SKU нет совпадений по строкам "Фабрика1" "Артикул1". Никак не могу придумать логику для второго случая. Кто-нибудь может направить в нужное русло? Я понимаю, что в моём случае запрос через getlist это может быть садомазохизм, и готов рассмотреть другие варианты. Но мне нужны цены, остатки по складам и работа с main.ui.filter и main.ui.grid, а также постраничная навигация. Getlist всё это даёт и прайс на нём я уже сделал и люди активно им пользуются, но вот понадобилось добавить поиск по поставщику для торговых предложений и я попал в тупик. Через фильтр в отдельном поле "поставщик" не подходит. Нужно именно через поиск, так как на смартфонах настраивать фильтры не удобно. Вопрос возможно решился бы легко, если бы можно было фильтровать по значениям свойств связанных элементов. Я бы просто при выборке sku указал бы артикул и поставщика через свойство привязки к товару. Но в документации указано что фильтровать можно только по значениям ПОЛЕЙ связанных элементов и далее перечисляются некоторые поля. Самый крайний случай, писать скрипт на cron, чтобы он дублировал свойства поставщик и артикул в торговые предложения. Но это такой костылище)) |
|||||
|
|
|