Почти половина программ, заменивших приложения для iOS, уязвимы с точки зрения утечки данных их пользователей. Зачастую доступ к данным в этих программах легко получить без разрешения, они крайне небрежно защищены от хакеров, отмечают участники рынка.
Почти половина (46%) российских веб-приложений содержат критические уязвимости, которые могут привести к утечке данных. Это следует из материалов компании «Солар» (входит в «Ростелеком»)
Например, главными уязвимостями в финансовых веб-приложениях, которые всегда интересуют хакеров, являются недостаток контроля доступа, эта проблема встречается в 78% случаев
Также среди проблем веб-приложений там назвали недостаточное шифрование, небезопасная обработка или хранение конфиденциальной информации, такой как номера кредитных карт, пароли или персональные данные клиентов.
Но и скачиваемые мобильные сервисы опасны. Зачастую приложение собирает информацию, вообще не уведомляя об этом пользователя, причем передается она обычно по открытым каналам.
https://iz.ru/1885493/valerii-kodachigov/zona-otstupa-polovina-zamenitelej-mobilnyh-prilozhenij-v-rf-nebezopasna
Почти половина (46%) российских веб-приложений содержат критические уязвимости, которые могут привести к утечке данных. Это следует из материалов компании «Солар» (входит в «Ростелеком»)
Например, главными уязвимостями в финансовых веб-приложениях, которые всегда интересуют хакеров, являются недостаток контроля доступа, эта проблема встречается в 78% случаев
Также среди проблем веб-приложений там назвали недостаточное шифрование, небезопасная обработка или хранение конфиденциальной информации, такой как номера кредитных карт, пароли или персональные данные клиентов.
Но и скачиваемые мобильные сервисы опасны. Зачастую приложение собирает информацию, вообще не уведомляя об этом пользователя, причем передается она обычно по открытым каналам.
https://iz.ru/1885493/valerii-kodachigov/zona-otstupa-polovina-zamenitelej-mobilnyh-prilozhenij-v-rf-nebezopasna
Известия
Зона отступа: половина заменителей мобильных приложений в РФ небезопасна
О каких уязвимостях идет речь и как они могут навредить пользователям
👍3😱2🤯1😢1🤡1
На проходящей конференции Qt World Summit Страуструп, создатель языка C++, дал советы по использованию C++:
«Никогда не используйте необработанный указатель в качестве дескриптора ресурса, например. Тогда вы нарушаете все, что я сказал. Никогда не передавайте набор элементов одним необработанным указателем, например, указателем на массив. Вы не знаете, сколько там элементов. Вы не можете провести достойную проверку диапазона. Если вы передаете вектор, он знает, сколько у него элементов, он знает, какие у него типы.
«Я почти никогда больше не использую приведения типов, кстати, это общая программная штука. И если вы не используете приведения типов, есть много ошибок типов, которые вы не можете сделать.
«Традиционно способ получить много всего из функции заключается в том, что вы помещаете что-то в свободное хранилище, динамическое хранилище, а затем вы передаете указатель, и затем вам нужно помнить, что рано или поздно его нужно удалить. В наши дни вы можете просто переместить вектор. Обычно это нулевые затраты».
"оператор new и оператор delete не должны быть в коде приложения"
Кроме того, Страуструп выступает за использования импорта модулей вместо стандартных include, так как использование #include является транзитивным (порядок имеет значение), вызывает повторную компиляцию и может привести к тонким ошибкам. Напротив, импорт не является транзитивным, и большую часть компиляции можно выполнить только один раз.
Также Страуструп высказался за наличие нескольких пустьи не совсем совместимых компиляторов C++, поскольку это увеличивает конкуренцию и простор для инноваций нежели, если бы существовал бы единый компилятор.
https://devclass.com/2025/05/09/interview-bjarne-stroustrup-on-21st-century-c-ai-risks-and-why-the-language-is-hard-to-replace/
«Никогда не используйте необработанный указатель в качестве дескриптора ресурса, например. Тогда вы нарушаете все, что я сказал. Никогда не передавайте набор элементов одним необработанным указателем, например, указателем на массив. Вы не знаете, сколько там элементов. Вы не можете провести достойную проверку диапазона. Если вы передаете вектор, он знает, сколько у него элементов, он знает, какие у него типы.
«Я почти никогда больше не использую приведения типов, кстати, это общая программная штука. И если вы не используете приведения типов, есть много ошибок типов, которые вы не можете сделать.
«Традиционно способ получить много всего из функции заключается в том, что вы помещаете что-то в свободное хранилище, динамическое хранилище, а затем вы передаете указатель, и затем вам нужно помнить, что рано или поздно его нужно удалить. В наши дни вы можете просто переместить вектор. Обычно это нулевые затраты».
"оператор new и оператор delete не должны быть в коде приложения"
Кроме того, Страуструп выступает за использования импорта модулей вместо стандартных include, так как использование #include является транзитивным (порядок имеет значение), вызывает повторную компиляцию и может привести к тонким ошибкам. Напротив, импорт не является транзитивным, и большую часть компиляции можно выполнить только один раз.
Также Страуструп высказался за наличие нескольких пустьи не совсем совместимых компиляторов C++, поскольку это увеличивает конкуренцию и простор для инноваций нежели, если бы существовал бы единый компилятор.
https://devclass.com/2025/05/09/interview-bjarne-stroustrup-on-21st-century-c-ai-risks-and-why-the-language-is-hard-to-replace/
DEVCLASS
Interview: Bjarne Stroustrup on 21st century C++, AI risks, and why the language is hard to replace • DEVCLASS
C++ inventor Bjarne Stroustrup talked to DevClass on how to write modern C++, the problem with trying to […]
👍17❤11❤🔥5🤔2🤡1
Microsoft снова призывает разработчиков использовать React Native для разработки настольных приложений для Windows, несмотря на свои инвестиции в другие подходы с использованием C# или C++.
Инженер-программист Кьяра Муни опубликовала пост о том, как команда Office использует React Native, заявив, что это «повысило надежность приложений и улучшило их опыт разработки».
Муни выделяет три ключевых преимущества React Native.
1)разработчики могут обмениваться навыками между веб- и настольными версиями приложения, используя JavaScript/TypeScript
2)React Native позволяет создавать кроссплатформенные приложения, использующие элементы управления, встроенные в операционную систему
3)можно встраивать компоненты React Native в существующие приложения Windows
Разработчики Windows часто замечали, что команда Office в Microsoft не принимает настольные фреймворки, которые компания создает для других. Office никогда не использовал .NET Windows Forms или WPF (Windows Presentation Foundation), например.
Сегодня то же самое, Office в основном создан с использованием C++ и React Native, а не с использованием .NET MAUI (Multi-platform app UI), например. Вообщем, почему Microsoft использует сторонние решение, а не полагается на свой собственный стек технологий, до сих пор для многих остается загадкой.
https://devblogs.microsoft.com/react-native/2025-05-09-office-modernize/
Инженер-программист Кьяра Муни опубликовала пост о том, как команда Office использует React Native, заявив, что это «повысило надежность приложений и улучшило их опыт разработки».
Муни выделяет три ключевых преимущества React Native.
1)разработчики могут обмениваться навыками между веб- и настольными версиями приложения, используя JavaScript/TypeScript
2)React Native позволяет создавать кроссплатформенные приложения, использующие элементы управления, встроенные в операционную систему
3)можно встраивать компоненты React Native в существующие приложения Windows
Разработчики Windows часто замечали, что команда Office в Microsoft не принимает настольные фреймворки, которые компания создает для других. Office никогда не использовал .NET Windows Forms или WPF (Windows Presentation Foundation), например.
Сегодня то же самое, Office в основном создан с использованием C++ и React Native, а не с использованием .NET MAUI (Multi-platform app UI), например. Вообщем, почему Microsoft использует сторонние решение, а не полагается на свой собственный стек технологий, до сих пор для многих остается загадкой.
https://devblogs.microsoft.com/react-native/2025-05-09-office-modernize/
Microsoft News
How Office Is Modernizing Their App Suite’s UI using Windows App SDK and React Native
An inside look at how Office has modernized their UI with WinAppSDK and React Native.
🤣40🤯7🤬7😢4👍3❤1👎1😁1🤡1
Добавлены два новых мобильных приложения:
для руководства по Kotlin
https://www.rustore.ru/catalog/app/com.metanit.kotlin_tutorial_full
и для руководства по C++
https://www.rustore.ru/catalog/app/com.metanit.cpp_tutorial_full
для руководства по Kotlin
https://www.rustore.ru/catalog/app/com.metanit.kotlin_tutorial_full
и для руководства по C++
https://www.rustore.ru/catalog/app/com.metanit.cpp_tutorial_full
RuStore
Руководство по языку Kotlin в каталоге RuStore
🚀 Руководство по языку Kotlin — Руководство по языку программирования Kotlin 📱 Скачайте за 799 рублей на смартфон, ТВ или планшет. Официальная версия (1.0) в RuStore — до 1 тыс установок, рейтинг 0,0★. Безопасно для 0+.
❤11🔥7👍4🥰3🤩2😁1🎉1
15 мая 2025 года языку Rust исполнилось 10 лет. Хотя проект Rust был основан в 2006 году, выпуск 0.1 был сформирован в 2012 году, а первая стабильная версия вышла 15 мая 2015 года.
Rust сфокусирован на безопасной работе с памятью, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Команда разработчиков Rust отпраздновала 10-летие выпуском нового релиза - Rust 1.87. Основные изменения:
- в стандартную библиотеку добавлены анонимные каналы (anonymous pipe), для создания которых применяется метод std::io::pipe()
- разрешён вызов из safe‑кода большинства встроенных в компилятор функций std::arch
- из блоков asm! с ассемблерным кодом разрешено осуществлять переходы на блоки с кодом на языке Rust, что упрощает разработку низкоуровневого кода
- разрешено точно указывать захваченные обобщённые типы и время жизни в определениях трейтов с использованием impl Trait;
https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/
Rust сфокусирован на безопасной работе с памятью, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Команда разработчиков Rust отпраздновала 10-летие выпуском нового релиза - Rust 1.87. Основные изменения:
- в стандартную библиотеку добавлены анонимные каналы (anonymous pipe), для создания которых применяется метод std::io::pipe()
- разрешён вызов из safe‑кода большинства встроенных в компилятор функций std::arch
- из блоков asm! с ассемблерным кодом разрешено осуществлять переходы на блоки с кодом на языке Rust, что упрощает разработку низкоуровневого кода
- разрешено точно указывать захваченные обобщённые типы и время жизни в определениях трейтов с использованием impl Trait;
https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/
🎉10🤮4👏1
В сообществе Python сообщили, что Microsoft уволила команду программистов проекта Faster CPython (коллекции макро‑тестов для языка программирования Python), включая технического руководителя Марка Шеннона и ведущих разработчиков ядра Python из команды Faster CPython.
Команда разработчиков Faster CPython узнала об увольнении в дороге на Python Language Summit на PyCon.
https://www.reddit.com/r/Python/comments/1kmwdbu/microsoft_layoffs_hit_faster_cpython_team/
Напомню, что ранее Microsoft провел сокращения ключевых и опытных разработчиков в командах, которые занимаются Android, .NET MAUI, TypeScript
Команда разработчиков Faster CPython узнала об увольнении в дороге на Python Language Summit на PyCon.
https://www.reddit.com/r/Python/comments/1kmwdbu/microsoft_layoffs_hit_faster_cpython_team/
Напомню, что ранее Microsoft провел сокращения ключевых и опытных разработчиков в командах, которые занимаются Android, .NET MAUI, TypeScript
Reddit
From the Python community on Reddit
Explore this post and more from the Python community
😢33🤯10👍3👎3🤔2😁1
Корпорация Microsoft выпустила обновление безопасности для ОС Windows 10 под номером KB5058379, установка которого полностью выводит компьютер из строя. После его внедрения в систему она перестает запускаться – вместо этого она выводит на дисплей меню восстановления (Windows Recovery) и заставляет пользователя ввести ключ BitLocker,
KB5058379 — это обязательное обновление безопасности. Оно выпускается для всех пользователей (за некоторыми исключениями), включая предприятия и корпорации, и у тех, кто еще пользуется Windows 10, нет возможности отказаться от его установки. Можно лишь отложить инсталляцию, но, если не предпринять меры и не выключить службу обновлений, этот патч рано или поздно проникнет в систему.
Есть мнение, что таким незамысловатым способом Microsoft хочет заставить пользователей перейти на Windows 11, так как поддержка Windows 10 заканчивается в октябре 2025 г
Существует способ устранения ошибки с BitLocker Recovery, вызванной патчем KB5058379. Для этого необходимо в BIOS отключить Intel TXT / Trusted Execution и позволить KB5058379 завершить установку.
https://www.windowslatest.com/2025/05/15/windows-10-kb5058379-locks-pcs-bitlocker-recovery-triggered-on-boot-bsods/
KB5058379 — это обязательное обновление безопасности. Оно выпускается для всех пользователей (за некоторыми исключениями), включая предприятия и корпорации, и у тех, кто еще пользуется Windows 10, нет возможности отказаться от его установки. Можно лишь отложить инсталляцию, но, если не предпринять меры и не выключить службу обновлений, этот патч рано или поздно проникнет в систему.
Есть мнение, что таким незамысловатым способом Microsoft хочет заставить пользователей перейти на Windows 11, так как поддержка Windows 10 заканчивается в октябре 2025 г
Существует способ устранения ошибки с BitLocker Recovery, вызванной патчем KB5058379. Для этого необходимо в BIOS отключить Intel TXT / Trusted Execution и позволить KB5058379 завершить установку.
https://www.windowslatest.com/2025/05/15/windows-10-kb5058379-locks-pcs-bitlocker-recovery-triggered-on-boot-bsods/
Windows Latest
Windows 10 KB5058379 locks PCs, BitLocker Recovery triggered on boot, BSODs
Windows 10 KB5058379 is causing some PCs to boot into Windows Recovery and require BitLocker key. It's also causing BSODs.
🤡69😭6🤯5🤣4
В руководства по GTK для C и C# добавлены новые статьи
Для Си
Древовидное представление и TreeExpander
https://metanit.com/c/gtk/3.11.php
Выпадающий список DropDown
https://metanit.com/c/gtk/3.10.php
Для C#
Древовидное представление и TreeExpander
https://metanit.com/sharp/gtk/5.11.php
Выпадающий список DropDown
https://metanit.com/sharp/gtk/5.10.php
Для Си
Древовидное представление и TreeExpander
https://metanit.com/c/gtk/3.11.php
Выпадающий список DropDown
https://metanit.com/c/gtk/3.10.php
Для C#
Древовидное представление и TreeExpander
https://metanit.com/sharp/gtk/5.11.php
Выпадающий список DropDown
https://metanit.com/sharp/gtk/5.10.php
👍22🔥4🥰4👏1
Каждой бэкэнд-системе необходим способ обработки запросов и выполнения задач - шаблон выполнения. Это фундаментальное архитектурное решение, которое существенно влияет на производительность и масштабируемость вашего приложения.
Рассмотрим базовые шаблоны выполнения на бэкенде:
[1.] Поток на запрос (Thread-per-Request)
◾️ Каждый входящий запрос получает свой собственный поток.
◾️ Этот поток делает все для этого запроса - считывает данные, обрабатывает его, отправляет ответ.
+ Подходит для простых приложений или когда вам нужна сильная изоляция между запросами (чтобы один сбой не привел к остановке всего сервера).
- Создание большого количества потоков может потреблять значительный объем памяти и ресурсов ЦП, а накладные расходы на переключение контекста возрастают с увеличением количества потоков.
[2.] Модель Реактор, управляемая событиями (Reactor Pattern)
◾️ Один поток (или небольшая группа) обрабатывает все.
◾️ Он прослушивает события (например, входящие запросы, завершенные сетевые операции), а затем запускает обратные вызовы для их обработки.
+ Идеально подходит для обработки большого количества соединений (например, веб-серверов), легковесный и позволяет избежать накладных расходов на создание множества потоков.
- Если выполнение задачи занимает слишком много времени, это может заблокировать весь цикл событий и привести к тому, что сервер перестанет отвечать.
(Для решения этой проблемы и обеспечения оперативности можно использовать такие методы, как фрагментация, рабочие потоки или отдельные процессы.)
При этом надо понимать, что есть два типа задач:
1) Задачи, связанные с вводом-выводом (I/O-Bound Tasks), которые представляют Неблокируемый ввод-вывод (Non Blocking I/O)
◾️ Эти задачи (например, сетевые запросы, файловые операции) по своей сути асинхронны и хорошо подходят для моделей, управляемых событиями.
◾️ Цикл событий делегирует их базовой системе и переходит к другим задачам.
◾️ Когда операция I /O завершается, цикл событий получает уведомление и выполняет связанный обратный вызов.
◾️ Этот механизм гарантирует, что цикл событий остается отзывчивым даже при наличии множества одновременных операций I /O .
2) Задачи, связанные с процессором (CPU-Bound Tasks)
◾️ Эти задачи требуют сложных вычислений, выполнение которых может занять значительное время.
◾️ В чисто однопоточной модели, управляемой событиями, длительная задача, связанная с ЦП, может заблокировать цикл событий, задерживая выполнение других задач и потенциально приводя к тому, что сервер перестает отвечать.
[3.] Asynchronous => Coroutines, Promises, Futures
◾️ A way of writing code that allows a task to start and then continue with other work without waiting for that task to finish, often using callbacks, promises or async/await.
[3.] Асинхронное выполнение - это такие инструменты как корутины (Coroutines), промисы (Promises), Futures
◾️ Это шаблон написания кода, который позволяет запустить задачу, а затем продолжить другую работу, не дожидаясь завершения этой задачи, часто с использованием обратных вызовов, промисов или async/await.
При этом все асинхронные системы управляются событиями, поскольку асинхронные операции генерируют события (завершение, ошибка), которые обрабатываются циклом событий.
Однако, не все системы, управляемые событиями, обязательно являются асинхронными.
Простая система, управляемая событиями, по-прежнему может использовать блокирующий ввод-вывод, где цикл событий будет ожидать завершения каждого события, прежде чем переходить к следующему.
Рассмотрим базовые шаблоны выполнения на бэкенде:
[1.] Поток на запрос (Thread-per-Request)
◾️ Каждый входящий запрос получает свой собственный поток.
◾️ Этот поток делает все для этого запроса - считывает данные, обрабатывает его, отправляет ответ.
+ Подходит для простых приложений или когда вам нужна сильная изоляция между запросами (чтобы один сбой не привел к остановке всего сервера).
- Создание большого количества потоков может потреблять значительный объем памяти и ресурсов ЦП, а накладные расходы на переключение контекста возрастают с увеличением количества потоков.
[2.] Модель Реактор, управляемая событиями (Reactor Pattern)
◾️ Один поток (или небольшая группа) обрабатывает все.
◾️ Он прослушивает события (например, входящие запросы, завершенные сетевые операции), а затем запускает обратные вызовы для их обработки.
+ Идеально подходит для обработки большого количества соединений (например, веб-серверов), легковесный и позволяет избежать накладных расходов на создание множества потоков.
- Если выполнение задачи занимает слишком много времени, это может заблокировать весь цикл событий и привести к тому, что сервер перестанет отвечать.
(Для решения этой проблемы и обеспечения оперативности можно использовать такие методы, как фрагментация, рабочие потоки или отдельные процессы.)
При этом надо понимать, что есть два типа задач:
1) Задачи, связанные с вводом-выводом (I/O-Bound Tasks), которые представляют Неблокируемый ввод-вывод (Non Blocking I/O)
◾️ Эти задачи (например, сетевые запросы, файловые операции) по своей сути асинхронны и хорошо подходят для моделей, управляемых событиями.
◾️ Цикл событий делегирует их базовой системе и переходит к другим задачам.
◾️ Когда операция I /O завершается, цикл событий получает уведомление и выполняет связанный обратный вызов.
◾️ Этот механизм гарантирует, что цикл событий остается отзывчивым даже при наличии множества одновременных операций I /O .
2) Задачи, связанные с процессором (CPU-Bound Tasks)
◾️ Эти задачи требуют сложных вычислений, выполнение которых может занять значительное время.
◾️ В чисто однопоточной модели, управляемой событиями, длительная задача, связанная с ЦП, может заблокировать цикл событий, задерживая выполнение других задач и потенциально приводя к тому, что сервер перестает отвечать.
[3.] Asynchronous => Coroutines, Promises, Futures
◾️ A way of writing code that allows a task to start and then continue with other work without waiting for that task to finish, often using callbacks, promises or async/await.
[3.] Асинхронное выполнение - это такие инструменты как корутины (Coroutines), промисы (Promises), Futures
◾️ Это шаблон написания кода, который позволяет запустить задачу, а затем продолжить другую работу, не дожидаясь завершения этой задачи, часто с использованием обратных вызовов, промисов или async/await.
При этом все асинхронные системы управляются событиями, поскольку асинхронные операции генерируют события (завершение, ошибка), которые обрабатываются циклом событий.
Однако, не все системы, управляемые событиями, обязательно являются асинхронными.
Простая система, управляемая событиями, по-прежнему может использовать блокирующий ввод-вывод, где цикл событий будет ожидать завершения каждого события, прежде чем переходить к следующему.
👍10❤3👏1
This media is not supported in your browser
VIEW IN TELEGRAM
(Шаблоны выполнения на бекэнде - к предыдущему посту)
👍3🥰1👏1