Как стать автором
Обновить
109
100.4

Редактор

Отправить сообщение

Безопасное проектирование программного обеспечения: Хеширование и salting

Время на прочтение6 мин
Количество просмотров2.4K


Автор статьи: Рустем Галиев (IBM Senior DevOps Engineer & Integration Architect)

Привет, Хабр!

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

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

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

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

В данной статье мы подробно рассмотрим концепции хеширования и salting, их роль в безопасном проектировании программного обеспечения.
Читать дальше →
Всего голосов 12: ↑7 и ↓5+5
Комментарии1

Как измерить эффективность DevOps в компании. Практики из Scaled agile framework (SAFe)

Время на прочтение5 мин
Количество просмотров3K

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

В данной статье мы рассмотрим инструменты и философию DevOps из Scaled Agile Framework. Это фреймворк масштабирования Agile в компании, который объясняет как объединить большое количество команд и построить с одной стороны предсказуемую разработку, а с другой стороны сохранить гибкость.

Читать далее
Всего голосов 9: ↑5 и ↓4+4
Комментарии2

26 техник, которыми геймдизайнеры манипулируют игроком в видеоиграх

Время на прочтение13 мин
Количество просмотров20K

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

Дисклеймер:

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

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

Читать далее
Всего голосов 34: ↑30 и ↓4+31
Комментарии15

Как измерить эффективность разработки через метрики?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.6K

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

Для команд создающих продукты в условиях неопределенности и потребности достигать метрических целей продукта:

Читать далее
Всего голосов 12: ↑7 и ↓5+4
Комментарии0

Нейросети для IT менеджеров

Время на прочтение10 мин
Количество просмотров2.4K

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

Чем может помочь искусственный интеллект IT менеджеру: 

— Делать анализ: аудитории, рынка, конкурентов
— Производить нейросегментацию
— Автоматизировать создание сайтов, презентаций и брендов
— Автоматизировать и адаптировать разработку контента
— Генерировать рекламные кампании с помощью искусственного интеллекта
— Внедрять искусственный интеллект во все этапы воронки продаж, начиная с ее разработки
— и многое другое.

В этой статье мы рассмотрим нейросеть ChatGPT и обсудим все его возможности, нюансы и практические советы. Потому что именно он может закрыть до 70% ваших задач.

Читать далее
Всего голосов 7: ↑6 и ↓1+6
Комментарии0

7 частых ошибок при проведении СustDev, которые могут исказить результаты ваших интервью

Время на прочтение7 мин
Количество просмотров883

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

Читать далее
Всего голосов 8: ↑7 и ↓1+7
Комментарии2

Как улучшать эффективность разработки через метрики? Фреймворк метрик

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1K

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

Последние несколько лет я занимаюсь трансформацией подходов к управлению на основе Agile и также внедряю метрики в компании.

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

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

Читать далее
Всего голосов 6: ↑5 и ↓1+6
Комментарии0

Учим нейронную сеть генерировать текст

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров5.4K

Всем привет! 

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

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

С генерацией текста фактически тоже самое. Только здесь нейронная сеть учиться предсказывать всего лишь одно слово на основе представленного ей текста.

Читать далее
Всего голосов 12: ↑11 и ↓1+12
Комментарии3

Безопасное проектирование программного обеспечения. Конфиденциальность и Шифрование

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2K

Привет Хабр!

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

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

Читать далее
Всего голосов 13: ↑7 и ↓6+4
Комментарии1

Как поднять уровень анализа вашего Laravel-приложения с 0 до 9 в Larastan

Время на прочтение6 мин
Количество просмотров2.5K

Larastan позволяет найти ошибки в вашем Laravel-приложении еще до его запуска. Он представляет собой обертку PHPStan, предназначенную специально для статического анализа с поддержки всей магии внутри Laravel.

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

Читать далее
Всего голосов 12: ↑12 и ↓0+14
Комментарии1

Как дорожные карты возможностей, продуктов и технологий помогают в реализации стратегии предприятия

Время на прочтение6 мин
Количество просмотров884

Давайте вспомним 90-е годы (неужели я настолько стар?). Тогда наша мантра гласила, что IT должно быть согласовано с бизнесом. Сегодня технологии стали настолько важны, что, похоже, теперь бизнес должен быть согласован с технологиями. Я никогда не видел постановку вопроса "одно против другого", когда речь шла об IT и бизнесе, ведь независимо от того, как вы на это смотрите, они должны быть согласованы. Вот здесь и приходят на помощь дорожные карты (roadmap).

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

Читать далее
Всего голосов 8: ↑7 и ↓1+8
Комментарии0

Как эффективно организовать 20 команд, работающих на одну цель?

Время на прочтение7 мин
Количество просмотров1.2K

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

Читать далее
Всего голосов 11: ↑9 и ↓2+10
Комментарии2

Python QA: введение в Unit Tests

Время на прочтение5 мин
Количество просмотров1.7K

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

Одним из наиболее распространенных методов тестирования в Python являются модульные тесты, или Unit Tests. Эти тесты позволяют разработчикам проверить отдельные компоненты и функции своего кода на соответствие ожидаемому поведению. В результате Unit Tests становятся надежным инструментом для обеспечения качества программного обеспечения и минимизации возможных ошибок.

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

Читать далее
Всего голосов 7: ↑5 и ↓2+6
Комментарии1

Обнаружение аварийных твитов с использованием NLP

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.2K

Всем привет!

Хочу поделиться своей проектной работой, которую написала в рамках курса OTUS  «Machine Learning.Professional».

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

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

Читать далее
Всего голосов 9: ↑7 и ↓2+8
Комментарии0

Разбираемся с паттерном REPR в ASP.NET Core

Время на прочтение6 мин
Количество просмотров3.7K

В этой статье мы рассмотрим паттерн проектирования REPR (request‑endpoint‑response — «запрос‑конечная_точка‑ответ»), как он упрощает разработку API и как его можно реализовать на C#.

Читать далее
Всего голосов 20: ↑8 и ↓12+1
Комментарии5

Освоение Enum в Java: Руководство для разработчиков

Время на прочтение9 мин
Количество просмотров5.8K

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

— Возможность реализации интерфейсов; 
— Собственное пространство имен;
— Неявная реализация интерфейсов Serializable и Comparable;
— В неявном виде класс реализует интерфейс java.lang.Enum и не может быть расширен от другого класса;
— Для сравнения значений Enum можно использовать операторы == и equals().

Читать далее
Всего голосов 20: ↑12 и ↓8+7
Комментарии6

React.js: Знакомимся с useReducer, Axios и JSON Server на примере создания инвентарного списка

Время на прочтение13 мин
Количество просмотров2.7K

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

А также между делом мы создадим мок API сервера с помощью JSON Server, будем использовать axios для вызова API и, наконец, воспользуемся хуком useReducer для управления состоянием.

Звучит интересно? Тогда давайте приступим.

Читать далее
Всего голосов 6: ↑6 и ↓0+9
Комментарии2

Добавляем объём в visionOS-приложение

Время на прочтение5 мин
Количество просмотров727

В этой статье постараемся разобраться, как использовать Volume для создания иммерсивного 3D-опыта в visionOS.

Volume (или «объем») представляет 3D-контент, не занимающий все доступное пространство, который пользователи могут наблюдать в любом удобном для них ракурсе. Объемы служат контейнерами для иммерсивного опыта, позволяя исследовать реалистичные представления 3D-объектов.

Читать далее
Всего голосов 5: ↑5 и ↓0+8
Комментарии0

Реализуем балансировку нагрузки на сервер с помощью Envoy и gRPC API на Kotlin

Время на прочтение6 мин
Количество просмотров2.3K

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

Читать далее
Всего голосов 9: ↑9 и ↓0+12
Комментарии1

Kanban метод: инструкция к применению

Время на прочтение8 мин
Количество просмотров16K

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

Читать далее
Всего голосов 10: ↑10 и ↓0+14
Комментарии8

Информация

В рейтинге
60-й
Откуда
Россия
Работает в
Зарегистрирован
Активность