Перейти к содержанию

Лидеры

  1. freelancer

    freelancer

    Разработчик


    • Баллы

      2

    • Постов

      22


  2. halfhope

    halfhope

    Разработчик


    • Баллы

      1

    • Постов

      48


  3. 555

    555

    Пользователь


    • Баллы

      1

    • Постов

      31


Популярный контент

Показан контент с высокой репутацией за 28.07.2024 в Записи блога

  1. Если открыть практически любой контроллер opencart, можно увидеть как после загрузки языка $this->load->language('catalog/product'); подгружаются языковые константы $data['text_list'] = $this->language->get('text_list'); $data['text_no_results'] = $this->language->get('text_no_results'); $data['text_confirm'] = $this->language->get('text_confirm'); $data['column_name'] = $this->language->get('column_name'); $data['column_attribute_group'] = $this->language->get('column_attribute_group'); $data['column_sort_order'] = $this->language->get('column_sort_order'); $data['column_action'] = $this->language->get('column_action'); и так для каждой константы. что бы не прописывать каждый перевод можно было сделать такой трюк $data = array(); // тут мы инициируем переменную $data если она не задана ранее $data += $this->load->language('catalog/attribute'); // а тут копируем в неё все языковые константы но это имело смысл только до версии 3.0 потому как с версии 3.0 добавили такую интересную штуку controller\event\language.php public function index(&$route, &$args) { foreach ($this->language->all() as $key => $value) { if (!isset($args[$key])) { $args[$key] = $value; } } } сами event'ы были и раньше, но language event добавили только в 3.0 а как же это работает? довольно просто: всё начинается с того что в файле framework.php создается и регистрируется event, который в свою очередь регистрирует все ивенты из конфига // Event $event = new Event($registry); $registry->set('event', $event); // Event Register if ($config->has('action_event')) { foreach ($config->get('action_event') as $key => $value) { foreach ($value as $priority => $action) { $event->register($key, new Action($action), $priority); } } } в конфиге среди прочих есть такие строчки $_['action_event'] = array( ... 'view/*/before' => array( 999 => 'event/language', ... таким образом перед каждым вызовом $this->load->view загружаются соответствующие языковые константы
    2 балла
  2. Небольшой FAQ насчет защиты вашего кармана. НЕ претендует на исключительность и будет обновляться время от времени (админ, дай права постоянного редактирования на топик плз). Обратите внимание. Ответственность за обработку персональных данных, далее ПД, увеличивается из года в год. Если раньше можно было обойтись смешными 300 рублями штрафа физику, то сейчас штрафы по нарушениям в сфере обработки и хранения ПД выходят на миллионный уровень, и применяется не только административный кодекс, но и уголовная ответственность. Вводятся повторные деяния, трансграничная передача, локализация обработки и тд и тп. Есть и некоторые поблажки, к примеру, для ИП сейчас есть мораторий на проверки до какого то там лохматого года, но этот мораторий не распространяется на проверки на основе жалоб потребителей и жестокие нарушения, типа незаконного сбора ПД. Имейте это ввиду. Для соответствия интернет магазина требованиям ФЗ-152 и РКН потребуется разместить несколько документов и совершить несколько действий. Настоятельно рекомендуется не копипастить тексты, т.к. они имеют авторов, в основном, юристов, а защита авторских у нас в стране поставлена на поток - минимальные суммы по судебным решениям от 0,5 млн. рублей и выше (хорошо если договоритесь по соглашению сторон на 100-150 тыс. р.). Раз в пять лет нужно удалять ПД с составлением протокола. Удаление в течении 30 дней. Срок пять лет - это срок хранения первички по договорам купли продажи. В этом FAQ не рассматривается процедура внутренней организации хранения, обработки и удаления ПД в юрлицах и ИП с точки зрения делопроизводства, т.е. приказы, ответственные, протоколы, требования к месту хранения ПД и тд и тп. Начало действий 1) Вы должны зарегистрироваться в РКН как оператор ПД. Для этого на их сайте заполняется уведомление и такое же уведомление отправляется Почтой РФ заказным письмом. РКН имеет право запросить у вас данные для входа на ваш сайт для проверки условий обработки и хранения ПД. РКН имеет право отключить ваш сайт вообще - никакой хостинг не будет за вас заступаться. 2) Вам нужно отключить любые зарубежные сервисы, вроде Google аналитики, reCAPTCHA, регистрации через Google и т.п, так как это относится к трансграничной передаче персональных данных и нарушению требования локализации. В некоторые страны ПД запрещено передавать по умолчанию, а в некоторые можно передавать, но требуется уведомлять РКН и он может вам запретить это делать - смотрите сайт РКН. Можно передавать и в запрещенные страны, но только имея на руках разрешения от РКН. Срок рассмотрения запроса - 10 раб. дней. Размеры штрафов за нарушение данных требований см. на сайте РКН, они каждый год меняются. Нюанс в трансграничной передаче - не все данные считаются ПД, идите на сайт РКН и читайте их нормативные данные. Для пользователей гуглокапчи есть отечественный сервис от Яндекс облака - Yandex SmartCaptcha, но там, к примеру, не быстрая регистрация, и только часть трафика бесплатная, в остальном там платные услуги. Сейчас Я.О. дает 4000 рублей грантом на счет, при условии привязки бизнес-карты. Для физиков ищите информацию самостоятельно в разделе тарифы. Кстати говоря, сама по себе кастомная капча не такой уж и сложный инструмент. И если капча действительно кастомная, т.е. не распространенная, неизвестная широкому кругу ботов и сервисов по подбору капчи индусами, то вы можете таким образом вполне себя защитить и потратиться только на разработку. 3) В подвале сайта либо в любом другом доступном месте на первой странице должны быть размещены тексты юридических соглашений и реквизиты вашего юрлица или ИП. Это также касается мобильной версии сайта. Индивидуальные предприниматели имеют регистрацию ИП по адресу проживания/пребывания. На апрель 2025 года ИП не обязано размещать на сайте адрес регистрации/пребывания, а только реквизиты типа Название ИП, ИНН и ОГРНИП. По доставке товара вы должны указать способ доставки товара либо возможность самовывоза, либо то и другое вместе. 4) Страницы регистрации и корзины НЕ должны иметь включенный чек-бокс со ссылкой на пользовательское соглашение, оферту, политику конфиденциальности. Некоторые разработчики зачем то размещают уже включенный чек-бокс на соглашения - этого делать нельзя. 5) На сайте должен быть размещен баннер акцепта куки (согласие на обработку куки) с рабочей ссылкой на документ, в котором описано применение кукисов, к примеру, Политику конфиденциальности. Примерный список и разделы необходимых документов на сайте. Оферта интернет-магазина По сути дела это документ, который описывает процесс купли-продажи (п2 статьи 437 ГК РФ). Без принятия этого документа покупатель не имеет права заключить (акцептировать) с продавцом договор купли-продажи. Оферта имеет примерно следующие разделы: Общие положения, термины Предмет договора Акцепт и оформление заказа Стоимость и оплата Раздел по доставке Возврат, обмен, гарантия Срок действия, порядок урегулирования и ответственность ПД и другая конфиденциальная информация Реквизиты продавца Политика конфиденциальности Это документ, который описывает политику обработки ПД клиента в вашей организации в соответствии с ФЗ-152 Термины Права покупателя Сроки и способы обработки Аналитика сайта и реклама Подписка на рассылку Обработка куки Передача ПД третьим лицам Раздел по несовершеннолетним пользователям - такие данные требуют отдельного разрешения РКН Безопасность данных Пользовательское соглашение По сути дела публичная оферта, которая регулирует дистанционную продажу товаров с использованием вашего сайта Предмет соглашения Регистрация на сайте Правила пользования сайтом Права и обязанности сторон Авторское право Ответственность Споры Реквизиты продавца Согласие на информационно-рекламную рассылку Представляет из себя документ, который явно разрешает оператору ПД обработку персональных данных для новостных, рекламных, информационных и прочих сообщений, которые отправляются по емейлу с сайта интернет-магазина (за исключением служебных писем вроде подтверждения емейла и заказа). Если не планируется массовая рассылка новостей - можно просто выпилить эту фичу из ЛК (для 3.0.3.8 есть плагин) или отключить ее в теме, если есть такая возможность. Если планируется использование рассылок через сторонний сервис - потребуется внесение соответствующих изменений в документы по ПД.
    1 балл
  3. В статье представлено описание алгоритма/подхода для очистки от вирусов сайта на OpenCart. Эта статья рекомендована для технически подкованных пользователей, которые хорошо понимают код, а так же способны сами искать и применять широкий ассортимент ПО для решения задач. Если у вас другая CMS/фреймворк, все равно рекомендую ознакомиться, возможно, будет полезно. От автора Если вам нужно очистить сайт от вирусов с гарантией: Краткий алгоритм Делаем бекап сайта; чистим его на локальной машине; меняем все возможные пароли; удаляем файлы и бд с сервера; заливаем обратно очищенные копии файлов и БД; На случай если мы что-то пропустили, то нужно организовать наблюдение: Устанавливаем наблюдение за изменениями в файлах и включаем логи, если они были отключены; если что-то произойдет, то это будет отражено в логах и Вам останется только закрыть пропущенную уязвимость; продолжать наблюдение. Рекомендуемый период наблюдения — 3-4 недели. Подробное описание Подготовка к работе Скачайте файлы сайта и БД на локальный компьютер. Быстрее всего это сделать одним файлом (zip архив). Можно не скачивать папку «image» т.к. она имеет большой размер и там нет исполняемых файлов. Позже это нужно будет проверить (перед загрузкой очищенной копии сайта). Используя OpenServer/WAMP/LAMP или тот же хостинг, создаем новую базу данных и импортируем дамп базы вашего сайта. Разархивируйте файлы в удобную для работы папку. Работа с базой данных Находим таблицу oc_user и удаляем всех пользователей, кроме администратора. Никнейм администратора рекомендую переименовать, это защитит учетку от случайного перебора паролей. Следует изменить пароль администратора. В таблице oc_user, в поле password вставьте md5 хеш пароля, очистите поле salt. На этом все, пароль изменен. Перейдите в таблицу oc_modification, в ней хранятся модификаторы модулей. Проверьте код модификаторов на предмет уязвимостей. С 2020 года некоторые ботнеты используют модификатор заточенный под OpenCart — reverse shell. Работа с файлами В качестве подготовительных работ рекомендую удалить лишний мусор вроде phpinfo, кэш, логи. У OpenCart это так же неиспользуемые темы (кроме default), языки и модифицированные файлы (system/storage/modification). Проверьте файлы на наличие в них вредоносного кода. Для этого можно использовать ai-bolit (revisium), ShellDetector, LMD, антивирусы для ПК и любые другие средства. Ну а вообще для приложений с единой точкой входа, таких как OpenCart, следует искать дополнительные точки входа в приложение (места передачи скрипту инструкций, через $_POST, $_GET, $_COOKIE и т.д.) а так же попытки их обфускации (сокрытия). Если вы просматриваете весь код, то ускорить этот процесс поможет ускорить GIT или Beyond Compare. Они покажут вам новые и измененные файлы, сравнив ваш сайт с оригинальной версией движка. Анализ access логов сервера так же позволит найти инфицированные файлы. Следует искать прямые вызовы файлов. После очистки создайте zip архив с очищенными файлами сайта. Работы на сервере Поставьте заглушку с кодом 503 Service Unvaliable и оставьте доступ только для своего IP адреса, чтобы предотвратить доступ к сайту извне. С такой заглушкой поисковые боты зайдут на сайт позже и вы не потеряете позиции в поисковой выдаче. Смените все возможные пароли — Панель управления, База данных, FTP пользователи, почтовые аккаунты. Удалите старую базу данных и импортируйте очищенную копию. Удалите все файлы сайта с хостинга, кроме папки «image» и заглушки. Из папки image стоит удалить все что не является изображениями, т.е. все исполняемые файлы, их там быть не должно. Загрузите очищенные копии файлов на сервер и обновите пароли в конфиг файлах. Перейдите в раздел администратора магазина и обновите модификаторы. Защитите админку от перебора и излишнего любопытства, добавив дополнительную HTTP авторизацию. Включите логирование запросов, если оно было отключено. Установите наблюдение за изменениями в файлах. Если вы что-то пропустили при очистке, то это будет отражено в логах или в изменениях файлов. По логам можно будет вычислить источник повторного заражения и закрыть уязвимость. Современные ботнеты детектируют удаление своих файлов и перестают «стучаться», чтобы не выдавать расположение всех созданных ими файлов. Они бездействуют несколько дней или недель и стучаться снова. Если какой-то инфицированный код остался, то сайт будет заражен снова. Поэтому период наблюдения стоит увеличить до максимального. Общие рекомендации Не используйте варезные модули; Используйте сложные пароли. Не придумывайте их сами, используйте генераторы; Не используйте имена по-умолчанию, такие, как admin, переименуйте их; Заведите отдельные аккаунты (FTP/админка) для подрядчиков (фрилансеров), по окончании работ отключайте их; Следите за изменениями в файлах; Используйте резервное копирование; Рекомендуемые модули
    1 балл
×
×
  • Создать...