Как стать автором
Обновить
@Ellik read-only

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

  • Публикации
  • Комментарии

Видишь уязвимости? А они есть! Наше исследование популярных CMS-систем

Блог компании Ростелеком-Солар Информационная безопасность *PHP *

Львиная доля всех работ по анализу защищенности внешнего периметра – это тестирование веб-приложений. Здесь могут быть как корпоративные решения, так и «домашние» разработки на базе различных публичных систем управления контентом (CMS). Мы всегда проводим глубокий анализ подобных решений на тестовых стендах и зачастую находим уязвимости нулевого дня. Собственно, из опыта таких проектов и родилась идея собрать исследовательскую команду и провести глубокий анализ популярных CMS-систем и различных плагинов для них. В этом посте мы поделимся результатами нашего исследования, а также продемонстрируем примеры уязвимого кода наиболее интересных, на наш взгляд, уязвимостей и примеры их эксплуатации. Конечно все эти уязвимости уже исправлены и описываются здесь с разрешения владельцев систем.

Не всё то в безопасности, что с Bug Bounty
Всего голосов 29: ↑28 и ↓1 +27
Просмотры 4K
Комментарии 8

Как использовать PHP для создания микросервиса?

Блог компании OTUS PHP *Программирование *
Перевод

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

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Просмотры 1.9K
Комментарии 3

Настройка окружения в CLI. WSL / Windows Terminal

Настройка Linux *Системное программирование *Виртуализация *Разработка под Linux *Лайфхаки для гиков
Tutorial
Есть люди, которые большинство рабочего времени проводят в консоли, есть те, кто пользуются терминалом при необходимости, запуская что-то по инструкциям. Но я думаю, что каждый айтишник, будь он разработчиком, сисадмином, сетевым инженером, или даже senior yaml developer`ом, пользуется command line interface. Далеко не все задумываются об улучшении рабочего окружения в CLI и повышении продуктивности работы в терминале. Мне хотелось бы поделиться своим опытом настройки окружения для работы с Linux из Windows.



Из статьи вы узнаете, какими средствами и каким терминалом актуально пользоваться в настоящее время для запуска Linux приложений в Windows 10. Речь пойдёт о WSL 2 и Windows Terminal, набирающим всё большую популярность у пользователей, которым для работы нужен Linux. Так как большинство use-case`ов у меня связаны с удалённым подключением через SSH, большая часть информации будет релевантно для случаев удалённых подключений, со всеми особенностями, связанными с этим (пробросом ssh ключей через ssh agent, пробросом X-сервера, управлением подключениями etс).

Внимание! Под катом много картинок и ужатого, но местами объёмного, gif`а, рекомендуется открывать статью при наличии соответствующего доступа к интернету. Заходите под кат, если вам актуален запуск Linux утилит под Windows, оптимизация работы в окружении CLI, или вы просто любите технические тексты и цветные терминалы. Текст я постарался скрасить скринкастами и скриншотами терминала, чтобы было не скучно.
Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 46K
Комментарии 33

Тестирование Node.js-проектов. Часть 1. Анатомия тестов и типы тестов

Блог компании RUVDS.com Разработка веб-сайтов *JavaScript *Node.JS *Тестирование веб-сервисов *
Перевод
Автор материала, первую часть перевода которого мы сегодня публикуем, говорит, что он, как независимый консультант по Node.js, каждый год анализирует более 10 проектов. Его клиенты, что вполне оправданно, просят его обратить особое внимание на тестирование. Несколько месяцев назад он начал делать заметки, касающиеся ценных приёмов тестирования и встречающихся ему ошибок. В результате получился материал, содержащий три десятка рекомендаций по тестированию.

image

В частности, речь здесь пойдёт о выборе подходящих в конкретной ситуации типов тестов, об их правильном оформлении, об оценке их эффективности, и о том, где именно в CI/CD-цепочках нужно их размещать. Некоторые из приведённых здесь примеров проиллюстрированы с использованием Jest, некоторые — с использованием Mocha. Этот материал, в основном ориентирован не на инструменты, а на методологии тестирования.

Тестирование Node.js-проектов. Часть 2. Оценка эффективности тестов, непрерывная интеграция и анализ качества кода
Читать дальше →
Всего голосов 25: ↑24 и ↓1 +23
Просмотры 27K
Комментарии 0

Docker + php-fpm + PhpStorm + Xdebug

PHP *
Tutorial
Не так давно тимлид нашей команды сказал: ребята я хочу, чтобы у всех была одинаковая среда разработки для наших боевых проектов + мы должны уметь дебажить всё — и web приложения, и api запросы, и консольные скрипты, чтобы экономить свои нервы и время. И поможет нам в этом docker.

Сказано — сделано. Подробности под катом.
Читать дальше →
Всего голосов 31: ↑27 и ↓4 +23
Просмотры 50K
Комментарии 80

Протокольно ориентированное программирование. Часть 1

Swift *

Давайте подробнее изучим тему протокольно ориентированного программирования. Для удобства разделили материал на три части.


Данный материал является комментированным переводом презентации WWDC 2016. Вопреки частому мнению о том, что вещи "под капотом" должны там и оставаться, иногда крайне полезно разобраться, что же там происходит. Это поможет использовать предмет правильно и по назначению.

Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 8.8K
Комментарии 8

Full-stack TypeScript Apps

Разработка веб-сайтов *Node.JS *TypeScript *
Из песочницы
Tutorial

Привет, Хабр! Представляю вашему вниманию перевод статьи "Full-Stack TypeScript Apps — Part 1: Developing Backend APIs with Nest.js" автора Ana Ribeiro.


Часть 1: Разработка серверного API с помощью Nest.JS


TL;DR: это серия статей о том, как создать веб-приложение TypeScript с использованием Angular и Nest.JS. В первой части мы напишем простой серверный API с помощью Nest.JS. Вторая часть этой серии посвящена интерфейсному приложению с использованием Angular. Вы можете найти окончательный код, разработанный в этой статье в этом репозитории GitHub


Что такое Nest.Js и почему именно Angular?


Nest.js это фреймворк для создания серверных веб-приложений Node.js.


Отличительной особенностью является то, что он решает проблему, которую не решает ни один другой фреймоворк: структура проекта node.js.

Читать дальше →
Всего голосов 15: ↑11 и ↓4 +7
Просмотры 13K
Комментарии 11

40 лучших инструментов и ресурсов Laravel

PHP *Laravel *
Из песочницы
image
Привет, Хабр! Представляю вашему вниманию подборку, которая является переводом моей оригинальной статьи.

Если есть идеи что добавить в подборку — буду рад пообщаться в комментах. Наслаждайтесь!
Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 21K
Комментарии 24

Собираем и заставляем бегать бюджетного гексапода

DIY или Сделай сам
Из песочницы
Много чего предстоит сделать, прежде чем мы дойдем до вот этой картинки:



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

— каждая нога должна иметь 3 степени свободы — 3dof (3 dimensions of freedom). Потому что более простой вариант 2dof — не дает такого ощущения насекомого, а 4dof — излишне, 3dof и так позволяет свободно перемещать кончик ноги в 3д пространстве;
— 6 ног; снова-таки, это уже не 4 (тогда робот неуклюже скачет), но и еще и не 8, как у пауков и уже чрезмерно;
— небольшой;
— дешевый;
— минимум плат и соединений;

Пост большой.
Читать дальше →
Всего голосов 224: ↑222 и ↓2 +220
Просмотры 140K
Комментарии 60

Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

Спортивное программирование *Python *Совершенный код *Регулярные выражения *Читальный зал
Tutorial

Регулярные выражения в Python от простого к сложному




Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Читать дальше →
Всего голосов 99: ↑98 и ↓1 +97
Просмотры 610K
Комментарии 62

Печатаем простейший корпус для самодельного устройства

3D-принтеры DIY или Сделай сам Электроника для начинающих
Из песочницы

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


Читать дальше →
Всего голосов 85: ↑85 и ↓0 +85
Просмотры 61K
Комментарии 100

Реализация словаря в Python 2.7

Python *Алгоритмы *
Из песочницы
В этой статье пойдёт речь о том, как реализован словарь в Python. Я постараюсь ответить на вопрос, почему элементы словаря не упорядочены, описать, каким образом словари хранят, добавляют и удаляют свои элементы. Надеюсь, что статья будет полезна не только людям, изучающим Python, но и всем, кто интересуется внутренним устройством и организацией структур данных.
Читать дальше →
Всего голосов 65: ↑64 и ↓1 +63
Просмотры 103K
Комментарии 37

Python & Arduino. Просто, быстро и красиво

Python *Программирование *Программирование микроконтроллеров *Разработка под Arduino *
Очень часто, у начинающих и не только разработчиков возникают вопросы. Как управлять с Arduino с компьютера? А если компьютер — не Raspberry Pi, а обычный домашний компьютер? А если не хочется мучится с ESP8266 и управлять через веб интерфейс? Неужели надо каждый раз открывать Arduino IDE и отправлять команды через Монитор порта? Именно о том, как создать своё собственное приложение с графическим интерфейсом для управления Arduino я сейчас и расскажу.
Читать дальше →
Всего голосов 26: ↑23 и ↓3 +20
Просмотры 74K
Комментарии 6

Лучшие методики тестирования в JavaScript и Node.js

Блог компании Mail.ru Group JavaScript *Анализ и проектирование систем *Node.JS *Тестирование веб-сервисов *
Перевод
Tutorial

Это исчерпывающее руководство по обеспечению надёжности в JavaScript и Node.js. Здесь собраны десятки лучших постов, книг и инструментов.

Сначала разберитесь с общепринятыми методиками тестирования, которые лежат в основе любого приложения. А затем можно углубиться в интересующую вас сферу: фронтенд и интерфейсы, бэкенд, CI или всё перечисленное.
Всего голосов 47: ↑46 и ↓1 +45
Просмотры 43K
Комментарии 3

ООП, «святая троица» и SOLID: некоторый минимум знаний о них

ООП *

Необходимое вступление


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


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


Столь малые гарантии поднимают вопросы о причинах, по которым статья пишется. Я считаю, что этим вещам должны учить везде, где учат программированию, вплоть до уроков информатики в школах с углублённым её изучением. Тем не менее, для меня стала пугающе нормальной ситуация, когда я узнаю, что собеседник мой коллега, причём работающий уже не первый год, но про инкапсуляцию «что-то там слышал». Необходимость собрать всё это в одном месте и давать ссылку при возникновении вопросов зрела давно. А тут ещё и мой «pet-project» дал мне изрядно пищи для размышлений.


Тут мне могут возразить, что учить эти вещи в школе рановато, и вообще на ООП свет клином не сошёлся. Во-первых, это смотря как учить. Во-вторых, 70% материала этой статьи применимо не только к ООП. Что я буду отмечать отдельно.



Читать дальше →
Всего голосов 88: ↑82 и ↓6 +76
Просмотры 97K
Комментарии 79

Про модель, логику, ООП, разработку и остальное

Программирование *Совершенный код *IT-стандарты *C# *ООП *
Часто ли вы задумываетесь – почему что-то сделано так или иначе? Почему у вас микросервисы или монолит, двухзвенка или трехзвенка? Зачем вам многослойная архитектура и сколько у вас вообще слоев? Что такое бизнес-логика, логика приложения, презентационная логика и почему все так разделено? Посмотрите на свое приложение – как оно вообще спроектировано? Что в нем и где находится, почему это сделано именно так?
Потому что так написано в книжках или так говорят авторитетные личности? Какие ВАШИ проблемы решает тот или иной подход/паттерн?
Даже то, что на первый взгляд кажется очевидным, порой бывает очень сложно объяснить. А иногда, в попытке объяснения, приходит понимание того, что очевидные мысли были и вовсе ошибочны.
Давайте попробуем взять какой-нибудь пример и изучить на нем эти вопросы со всех сторон.
Читать дальше →
Всего голосов 55: ↑51 и ↓4 +47
Просмотры 96K
Комментарии 34

CQRS. Факты и заблуждения

Разработка веб-сайтов *Анализ и проектирование систем *.NET *Проектирование и рефакторинг *C# *
Tutorial

CQRS — это стиль архитектуры, в котором операции чтения отделены от операций записи. Подход сформулировал Грег Янг на основе принципа CQS, предложенного Бертраном Мейером. Чаще всего (но не всегда) CQRS реализуется в ограниченных контекстах (bounded context) приложений, проектируемых на основе DDD. Одна из естественных причин развития CQRS — не симметричное распределение нагрузки и сложности бизнес-логики на read и write — подсистемы Большинство бизнес-правил и сложных проверок находится во write — подсистеме. При этом читают данные зачастую в разы чаще, чем изменяют.

Не смотря на простоту концепции, детали реализации CQRS могут значительно отличаться. И это именно тот случай, когда дьявол кроется в деталях.
Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Просмотры 110K
Комментарии 108

Спокойствие спокойствию рознь

Open source *Разработка под iOS *Swift *
иконка библиотеки Три года назад, я написал статью о DI библиотеке для языка Swift. С того момента библиотека сильно измененилась и стала лучшей в своем роде достойным конкурентом Swinject, превосходящяя его по многим показателям. Статья посвящена возможностям библиотеки, но и имеет теоретические рассуждения. Итак, кому интересны темы DI, DIP, IoC или кто делает выбор между Swinject и Swinject прошу под кат:
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 5.5K
Комментарии 3

Логирование в распределенном php-приложении

Разработка веб-сайтов *PHP *Программирование *DevOps *
Tutorial


В статье пойдет речь о том, какую пользу оказывает логирование. Расскажу о логах по PSR. Добавлю немного личных рекомендаций по работе с уровнем, сообщением и контекстом логируемого события. Будет приведен пример, как можно организовать логирование и мониторинг с помощью ELK в приложении, написанном на Laravel и запущенном через Docker на нескольких инстансах. Распишу важное правило системы оповещения. Приведу пример скрипта, который поднимает одной командой весь стек мониторинга.

Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 24K
Комментарии 16

iOS Storyboards: анализ плюсов и минусов, best practices

Блог компании MobileUp Разработка под iOS *Разработка мобильных приложений *


Apple создала Storyboards, чтобы разработчики могли визуализировать экраны iOS-приложений и связи между ними. Не всем понравился этот инструмент, и на то есть разумные причины. Я встречал много статей с критикой Storyboards, однако так и не нашел подробного и непредвзятого анализа всех плюсов и минусов с учетом best practices. В итоге я решил написать такую статью сам.
Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Просмотры 14K
Комментарии 11

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность