• Разные цены для складов в многоскладовости. Доработка 1С-Битрикс

      Были интернет-магазин и b2b платформа у одной компании на системе 1с-Битрикс. Компания росла и появились свои склады и добавились еще склады партнеров которые нужно было отображать. Возникла необходимость отображения остатков по нескольким складам.

      И что нам говорит Битрикс: Пожалуйста переходите на редакцию «Бизнес» и будет всё замечательно и сразу. На редакцию перешли и оказалось, что многоценновость и многоскладовость в 1С-Битрикс живут отдельной жизнью. Первая нужна для отображения разных цен для разных групп пользователей, а второе для отображения остатков на разных складах.

      Нам нужно было выводить остатки со своей ценой по каждому складу, так как цена у партнеров и у нас может отличаться на одну и ту же позицию. Штатного такого функционала оказалось, что нет.
      Читать дальше →
    • Как не надо разрабатывать проект на Битрикс

      За все время своей работы с Битрикс мне довелось поработать с очень большим количеством проектов, которые кто-то разрабатывал до меня. Тут и мелкие доработки, фикс различных багов и ошибки работы логики, редизайн сайта и глобальные изменения существующего функционала. И, как и любой другой разработчик, я терпеть не могу разгребать чужой мусор, костыли и «временные» заплатки, которые на деле помнят еще 8 редакцию продукта.
      Читать дальше →
    • Сервис uLogin отправляет данные из форм (почта, телефон) на сторонний сайт и молчит об этом

        Привет сообщество. Это моя первая запись, пусть она и не совсем длинная — но важный посыл в заголовке.

        Есть такой сервис для авторизации через соцсети — uLogin. Разработчики выпустили много бесплатных плагинов под различные CMS и вот он — сыр в мышеловке.

        Видно дела пошли не очень и пользователи начали замечать, что сервис подгружает странные скрипты при работе модуля. Я проводя аудит своего сайта — заметил что грузится counter.yadro.ru несколько раз. В общей сложности, при загрузке страницы, они загружали 18 ресурсов (js, css, прочие запросы) — это много для моего проекта у которого всего 47 запросов. А их сервис добавляет еще 18, включая запросы к сторонним сайтам.
        Подробности дела
      • Высокие перегрузки: электронный архив на Alfresco ECM

          Хотим поделиться опытом по автоматизации работ, связанных с фото-фиксацией грузов, в одной из самых крупных российских транспортных компаний. И рассказать о том, с какими вызовами пришлось столкнуться, и как мы их решали.

          Задача фото-фиксации грузов на различных этапах транспортировки является типовой для транспортной компании. Сотрудники компании фотографируют груз, загружают изображение в ERP-систему, из которой он попадает в электронный архив (ЭА). Каждая фотография сопровождается метаинформацией: отделение отправитель, получатель, код и индекс рейса, и т.д. Основная задача электронного архива – организация гибкого, удобного и, главное, быстрого поиска фотографий по метаинформации за последние 3 года.
          Читать дальше →
        • Защита от легкого DDoS'a

            Совсем недавно на хабре уже появилась рекламная статья о борьбе с DDoS атаками на уровне приложения. У меня был аналогичный опыт поиска оптимального алгоритма противодействия нападениям, может кому пригодится — когда человек в первый раз сталкивается в DDoS-ом его сайта, это вызывает шок, поэтому полезно заранее знать, что всё не так уж страшно.
            Читать дальше →
          • Производительность Joomla на больших объемах контента

              image

              Joomla очень плохо переваривает базу данных даже с несколькими тысячами статей в таблице _content. При нескольких десятках тысяч запросы в базу стандартных модулей типа mod_articles_popular могут зависать на секунды.

              Всё дело в ACL (Access Control List) — политике контроля доступа. Проверка законности доступа пользователя к материалам занимает свыше 98% времени выполнения запроса.
              Читать дальше →
            • Ой, у вас баннер убежал!

              Ну. И что?
              Реклама
            • Защита от DDoS атаки на уровне веб-приложений

                Как известно DDoS атаки на сайт бывают разной интенсивности, имеет значение количество хостов участвующих в атаке, количество сетевых пакетов и объем передаваемых данных. В самых тяжелых случаях отбить атаку возможно только применяя специализированное оборудование и сервисы.


                Если же объем атаки меньше пропускной способности сетевого оборудования и вычислительных мощностей сервера (пула серверов) обслуживающих сайт, то можно попробовать “заглушить” атаку не прибегая к сторонним сервисам, а именно включить программный фильтр трафика поступающего на сайт. Этот фильтр будет отсеивать трафик ботов участвующих в атаке, при этом пропуская легитимный трафик “живых” посетителей сайта.

                Читать дальше →
              • Поддержка IPv6 в CleanTalk Security для WordPress

                  Недавно мы писали о том что сделали поддержку IPv6 в антиспам плагине. Но не только спамеры начали использовать IPv6, для других видов атак на сайты злоумышленники их тоже используют.

                  Мы реализовали поддержку IPv6 в плагине безопасности для WordPress. Обновлены методы определения IP адресов, хранения и передачи информации в облако.

                  Мы должны были научить плагин различать, стандартизировать, искать подсети и хранить IPv6 адреса. Несмотря на массу различных готовых решений пришлось делать свою реализацию и главная загвоздка в том что PHP может быть собран с различными параметрами, да и вообще может быть устаревшей версии, поэтому пришлось делать все с нуля.
                  Читать дальше →
                • Велосипед-CMS. Как я увлекательно провел шесть дней из-за комментария на Хабре



                    Эта история началась с комментария к моей статье на Хабре. Точнее, с части этого комментария:

                    «Попробуйте постройте приложение уровня и функционала WordPress — и оно точно так же будет задыхаться от наплыва пользователей»

                    Я посчитал это аргументом в стиле «сперва добейся» и, в общем, прошел мимо. Но некоторое время спустя звезды сложились совершенно неожиданным образом. Во-первых, я лишился основного источника дохода. Во-вторых, после недели судорожных метаний я решил прекратить это занятие и отвлечься на что-нибудь постороннее. Где-нибудь на неделю. Растущие бюджетные дыры и случайная простуда решительно сократили список возможных развлечений.

                    Сначала я попробовал игры. Но то ли я стал староват, то ли игры пошли не те — уже под вечер первого дня я ходил по квартире и с мрачным лицом подкидывал под потолок мячик. И тут я почему-то вспомнил про этот комментарий. И про то, что всегда хотел попробовать написать собственную простую CMS.

                    Вот так сошлись звезды. А результаты этого моего эксперимента — в статье.

                    Читать дальше →
                  • Валидация емейл адресов для защиты от спам ботов на сайте

                      Электронная почта до сих пор остается одним из важнейших и эффективных элементов онлайн бизнеса и маркетинга и является наиболее эффективным каналом получения дохода. Поэтому для любого онлайн бизнеса и владельцев веб сайтов важно быть уверенным, что именно владелец емейла использовал его для регистрации/подписки, чтобы пользователь использовал свой реальный емейл адрес.



                      Есть несколько важных причин для этого.

                      Во-первых, это важно для восстановления забытого пароля, например: пользователь допустил опечатку в своем емейл адресе, через некоторое время использовал функцию восстановления пароля и не может получить новый пароль.

                      Во-вторых, этот пользователь не получит ваших емейл уведомлений.

                      В-третьих, пользователь, чей емейл был использован спамером для регистраций/подписки, отправит вашу рассылку в спам. В дальнейшем спамеры могут использовать этот емейл для отправки спама, брутфорса и т.д.
                      Читать дальше →
                    • CleanTalk Malware Scanner — эвристический анализ кода

                        Мы уже рассказывали о запуске Security сервиса для WordPress в предыдущей статье. Сегодня мы хотим рассказать о запуске эвристического анализа для определения вредоносного кода.

                        Само наличие вредоносного кода может привести к бану в поисковой выдаче или предупреждению в поиске о том что сайт заражен, оградить пользователей от возможно опасного контента.

                        Можно найти вредоносный код и самостоятельно, но это и большой объем работы и большинство пользователей WordPress не обладает необходимыми навыками, чтобы найти и удалить ненужные строки кода.
                        Читать дальше →
                      • LarrockCMS — новая CMS на основе Laravel

                          image

                          LarrockCMS — это CMS основанная на php-фреймворке Laravel поставляемая в формате composer-пакетов. Распространяется под лицензией CC-BY-4.0.

                          Официальный сайт
                          GitHub

                          В основе проекта ядро CMS (LarrockCore), устанавливаемое в дополнение к laravel версии >=5.6 и пакеты компонентов (дополнений к LarrockCore). Требуются: php >=7.1.3, mysql >=5.7
                          Читать дальше →
                        • Расширяем возможности CleanTalk Anti-Spam

                            Проверка существующих пользователей Joomla на спам


                            Сообщения спам-ботов (комментарии) часто замаскированы под обычные сообщения пользователей, но содержат рекламные ссылки или текст. Основными задачами таких сообщений являются, переход пользователя на вредоносный ресурс, рекламу или ссылки для повышения позиций их сайта. Это компрометирует сайт и может испортить репутацию, поисковые системы могут понизить позицию сайта в результатах поиска.

                            Мы реализовали проверку на спам, для комментариев и пользователей, которые уже существуют на сайте. Это позволяет администраторам веб-сайтов автоматически проверять и идентифицировать комментарии и регистрации спам-ботов, которые не были обнаружены обычными средствами защиты от спама.
                            Читать дальше →
                          • 5 новых анти-спам плагинов от CleanTalk

                              Мы решили продолжить вести блог и будем в нем рассказывать о своей работе. Начнем с того, что расскажем о том, что нами было нами сделано в 2017 году. За прошедший год нами были разработаны несколько антиспам модулей для CMS, о которых я расскажу подробнее.

                              Читать дальше →
                            • 29% вебсайтов уязвимы для DOS-атаки даже одной машиной (CVE-2018-6389)

                              • Перевод


                              Важно отметить, что использование этой уязвимости является незаконным, если только у вас нет разрешения владельца веб-сайта.

                              В платформе WordPress CMS была обнаружена простая, но очень серьезная уязвимость, связанная с атаками типа «отказ в обслуживании» (DoS) на уровне приложений, которая позволяет любому пользователю приводить в нерабочее состояние большинство веб-сайтов WordPress даже с помощью одной машины. Происходит это без необходимости задействовать огромное количество компьютеров для переполнения полосы пропускания, как это требуют DDoS-атаки, но с достижением того же результата.

                              Поскольку WordPress Foundation отказали в исправлении проблемы, уязвимость (CVE-2018-6389) остается без патча и затрагивает почти все версии WordPress, выпущенные за последние девять лет, включая последнюю стабильную (WordPress версия 4.9.2).
                              Читать дальше →
                            • ReadyScript Mobile — готовое eCommerce мобильное приложение

                                «Хочу мобильное приложение для интернет-магазина» — такие запросы все чаще поступают от владельцев брендов к веб-разработчикам. Но как обычной веб-студии удовлетворить столь масштабный запрос, если среди компетенций компании есть только веб-разработка?

                                По нашим данным, в большинстве случаев небольшие веб-студии пытаются отговорить клиента от мобильного приложения в пользу обычной адаптивности сайта или независимой мобильной версии. Часто это удается, хотя приходится отбиваться от множества сложных вопросов, например, таких как: “А почему у всех брендов, которые на слуху есть собственное мобильное приложение, зачем они тогда его делают?”.

                                В тех же случаях, когда клиента переубедить не удается и он все же желает предоставить своим пользователям высокий уровень сервиса и проникновения своего бренда в различные устройства, веб-студия начинает поиск имеющихся решений.

                                В 2016 году мы оценили эту проблему и спустя год предложили готовое решение для создания мобильного приложения для интернет-магазинов, разработанных на платформе ReadyScript. Как обычно, мы предлагаем и SaaS и коробку. Новый сервис получил название ReadyScript Mobile.



                                Под катом расскажем, какие технологии мы использовали, с какими трудностями сталкивались и как их преодолевали. Попутно сравним с другими решениями уникальное качество нашего сервиса, а именно прямую интеграцию с интернет-магазином клиента, без посредников.
                                Читать дальше →
                              • Как изменилась платформа для интернет-магазина ReadyScript за последние 3 года

                                  Привет, Хабр! Мы не заметили, как пролетели 3 с лишним года со дня предыдущей публикации, так как увлеченно развивали возможности нашей eCommerce платформы и сопутствующих сервисов. В этой статье мы расскажем, что ReadyScript предлагает сегодня пользователям и разработчикам, какие задачи с его помощью можно решить.

                                  За это время наш продукт вырос до третьей мажорной версии, обзавелся адаптивной административной панелью, интеграцией с онлайн кассами, мобильными приложениями для курьеров и администраторов, мобильными приложениями для клиентов, Desktop приложениями для Windows и OSx, фреймворком для простого создания внешних API, маркетплейсом с множеством модулей, а также целой экосистемой для работы с пользователями и разработчиками.



                                  Еще за это время у нас вышла четвертая, самая функциональная редакция «Мегамаркет», которая включает в себя встроенный трехкомпонентный модуль безопасности, CDN, модуль филиальной сети, а также расширенную статистику.

                                  Подробнее обо всем этом мы расскажем под катом.
                                  Читать дальше →
                                • Zoia.js: ещё один веб-фреймворк на Node

                                    Всем привет, уважаемые хабражители.

                                    Многие из вас так или иначе имели дело с Node.js. Наверное, не имеет смысла рассказывать о том, какие преимущества есть у JavaScript и у его серверной реализации в частности. В настоящий момент я много всего делаю на JS, начиная от простых консольных скриптов и заканчивая API, сервисами и сайтами. Современный стандарт EcmaScript принес значительные изменения в язык: он не только исправил некоторые древние «косяки» JS, но и добавил новые возможности, позволив, в частности, красиво избавиться от Callback Hell.

                                    Когда передо мной в очередной раз встала задача развернуть простой сайт, состоящий из нескольких десятков страничек, мне захотелось сделать это при помощи какой-нибудь легковесной, но современной CMS, основанной на Node. Оценив обстановку, я понял, что ничего подходящего до сих пор нет. Мой старый и добрый Taracot оказался для этой задачи слишком тяжелым, к тому же, он не работает с современными версиями Node и перегружен функционалом.
                                    Читать дальше →
                                  • Переход с ASP.NET к ASP.NET Core 1.1

                                    • Tutorial

                                    Переход с ASP.NET к ASP.NET Core 1.1


                                    Содержание:


                                    1. Введение
                                    2. Сравнение стеков технологий
                                    3. Полезные команды
                                    4. Сборка и запуск проекта
                                    5. Entity Framework Core
                                    6. Введение

                                    Одним из направлений деятельности нашей компании является веб-разработка. Для разработки сайтов мы используем ASP.NET MVC, и, по обыкновению, хостингом для нашего добра служит Windows Server. Но время идет, появляются новые технологии, а старые технологии эволюционируют, как, впрочем, и желания наших клиентов.       


                                    Со временем возникла нужда запустить новый проект на хостинге linux. Все бы ничего, задача, казалось бы, относительно тривиальная.  Но в потребностях значилось использование нашей CMS, написанной на стеке ASP.NET MVC 5, что значительно усложняло задачу.


                                    Поразмышляв, мы решили что наиболее подходящим вариантом будет перенос наших наработок на стек ASP.NET Core. В процессе миграции на рельсы новых технологий возникло достаточно много интересных моментов и сложностей.


                                    Сравнение стеков технологий


                                    Ниже я сопоставил стеки технологий, использовавшихся для разработки наших проектов изначально и тех, что мы выбрали в качестве замены в процессе миграции.


                                    • Windows Server 2008 — Debian 8.8
                                    • IIS 7 — Kestrel в связке Nginx 1.12
                                    • .NET framework 4.5 — .NET Core
                                    • ASP.NET MVC 5 — ASP.NET Core 1.1
                                    • Microsoft SQL — .NET Core 1.1
                                    • Entity Framework 6.0 — Entity Framework 1.1
                                    • Встроенный механизм для создания бандлов и минификации — WebPack 2

                                    Полезные команды


                                    Сборка и запуск проекта


                                    Для запуска и сборки проекта можно использовать dotnet run. Можно немного облегчить задачу и использовать команду dotnet run -watch. Данная команда запускает dotnet в

                                    Читать дальше →
                                  • Создание модулей для MODX Evolution в 2017 для самых маленьких

                                    Что такое модули


                                    В MODX EVO представлены следующие типы ресурсов шаблоны, чанки, сниппеты, плагины и модули. Если вы работаете в системе то точно знаете за что отвечают первые три, но возможно лично никогда не работали с последними. Плагины — это интегрированный в MODX код который позволяет изменять механики взаимодействия с админ-интерфейсом, с помощью плагинов вы можете изменить способ отображения данных для редактирования любых ресурсов и задать какие и на каких этапах взаимодействия стоит совершать. Проще говоря с помощью плагинов вы вешаете свои обработчики.

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

                                    Если говорить конкретнее, то с помощью модулей вы можете создавать надстройки со своими интерфейсами, например для массового редактирования документов или для управления интернет магазином, которые будут удобны пользователю.
                                    Читать дальше →
                                  Самое читаемое