Проверка исходного кода библиотек .NET Core статическим анализатором PVS-Studio

Автор: admin от 13-08-2019, 16:55, посмотрело: 14

Проверка исходного кода библиотек .NET Core статическим анализатором PVS-Studio


Библиотеки .NET Core — один из самых популярных C# проектов на GitHub. Неудивительно, с учётом его широкой известности и используемости. Тем интереснее попробовать выяснить, какие тёмные уголки можно найти в исходном коде этих библиотек, что мы и попробуем сделать с помощью статического анализатора PVS-Studio. Как думаете, удалось ли в итоге обнаружить что-нибудь интересное?

Категория: Программирование, Microsoft

 

Blazor + MVVM = Silverlight наносит ответный удар, потому что древнее зло непобедимо

Автор: admin от 12-08-2019, 07:35, посмотрело: 15

Привет Хабр! Таки да, скоро выходит net core 3.0 и там будет шаблон проекта с Blazor как один из дефолтных. Название у фреймворка, по-моему, похоже на название какого-нибудь покемона. Блазор вступает в бой! Решил я значит глянуть что за зверь такой и с чем его едят поэтому сделал на нем Todo лист. Ну и на Vue.js тоже, для сравнения с сабжем потому что по моему они похожи система компонентов в обоих и реактивность и вот это все. Больше тудушек богу тудушек! По факту это Гайд для юных, не окрепших умов которым лень TypeScript или javascript учить а кнопочки и инпуты на сайте сделать хочется. Как в том меме -«Технарь хотел написать книгу но получилась инструкция». Кому интересны мои похождения в фронт энде или узнать что за Blazor такой добро пожаловать под кат.

Категория: Программирование

 

Как технологии быстрой разработки могут стать источником неприятных уязвимостей

Автор: admin от 2-08-2019, 19:05, посмотрело: 21

Безопасность на реальных примерах всегда более интересна.



Как тестировщик на проникновение, люблю, когда приходят проекты, построенные на фреймворках быстрой разработки (Rapid development), подобно Ruby-on-Rails, Django, AdonisJs, Express и так далее. Они позволяют очень быстро строить систему за счет того, что бизнес модели прокидываются сразу на все уровни, включая клиентский браузер. Model (модели бизнес объектов в базе) и ViewModel (контракт взаимодействия с клиентами) такие фреймворки часто объединяют вместе, чтобы избежать лишнего перекладывания из Model во ViewModel и обратно, REST сервисы автоматом генерируются. C точки зрения разработки можно просто разработать бизнес модель на сервере, и потом использовать ее сразу на клиенте, что несомненно увеличивает скорость разработки.



Еще раз, я не утверждаю, что вышеупомянутые фреймворки плохие, или с ними что-то не то, у них есть средства и инструменты правильной защиты, просто с ними разработчики делают больше всего ошибок. Такое встречал и на одном ASP.NET MVC проекте, в котором разработчики наделали те же уязвимости, выставляя Models вместо ViewModels…

Категория: Программирование, Веб-разработка

 

Как мы обучили нейронную сеть классифицировать шурупы

Автор: admin от 16-07-2019, 14:25, посмотрело: 36

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



Как мы обучили нейронную сеть классифицировать шурупы


Проблема интернет-магазина шурупов — в ассортименте. Тысячи или десятки тысяч моделей. У каждого шурупа свое описание и характеристики, поэтому на фильтры нет надежды. Что делать? Искать вручную или искать в гипермаркете на полках? В обоих случаях это потеря времени. В итоге клиент устанет и пойдет забивать гвоздь. Чтобы помочь ему, воспользуемся нейросетью. Если она может находить котиков или диваны, то пусть занимается чем-то полезным — подбирает шурупы и болты. Как научить нейросеть подбирать для пользователя шурупы быстро и точно, расскажем в расшифровке доклада Марии Мацкевичус, которая в компании Grid Dynamics занимается анализом данных и машинным обучением.

Категория: Программирование

 

Небольшая история разработки своей игры на чистом Windows Forms + С# в мои 16 лет

Автор: admin от 3-07-2019, 13:40, посмотрело: 43

Небольшая предыстория



В разработку я пришёл в середине 8 класса(сейчас закончил 9), раньше я очень много играл в игры, поэтому написать свою было большое желание. И вот спустя огромную кучу теории, и мелких проектов я добрался до первого большого проекта. Вообщем, я — самоучка. Первым серьезным проектом стала моя игра про рыбалку, написанная на чистом Windows Forms + C#. Сразу скажу, что писать игру на стороннем движке я не вижу смысла, ведь моя дорога не лежит в Gamedev.



Разработка проекта



Идея создания появилась от крупной 2D игры «Русская рыбалка», кстати большинство текстур я взял именно оттуда, потому что заниматься рисованием не входит в мои планы. Удивительно, но благодаря большому опыту на мелких задачах Гуглом при разработке почти не пользовался. Из чего делаю вывод, что решение даже простых мелких задач даёт большой профит.



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



Это большая матрица, состоящая из Labelов, по которым по теореме Пифагора обрабатываю наличие мыши рядом с ним. Сейчас уже есть вариант переделать по другому, но я один, а технологий которых надо изучать ещё много, ведь в планах у меня устроиться на работу к концу лета =). (Думаю, что представить, как это выглядит, довольно просто.)



Проблемы были и в реализации наживок, ведь каждая рыба кушает что-то своё, а локаций много, да ещё и глубина разная. Вообщем я потратил на наживки почти неделю по 6-8 часов. Но теперь оно работает :)



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

Категория: Программирование, Веб-разработка

 

Изучаем MITRE ATT&CK. Mobile Matrices: Device Access. Часть 5

Автор: admin от 29-06-2019, 13:30, посмотрело: 43

Обзор (Discovery) и Боковое перемещение (Lateral Movement)



Ссылки на все части:



Часть 1. Первоначальный доступ к мобильному устройству (Initial Access)

Часть 2. Закрепление (Persistence) и Эскалация привилегий (Privilege Escalation)

Часть 3. Получение учетных данных (Credential Access)

Часть 4. Обход защиты (Defense Evasion)



Получив доступ к мобильному устройству противник, вероятно, попытается использовать штатные средства операционной системы, чтобы «осмотреться», понять какое преимущество получено, способствует ли оно достижению цели вторжения. Данный этап атаки называется «Обзор» (Discovery). Техники осуществления обзора направлены на получение информации о характеристиках скомпрометированного мобильного устройства, а также других доступных сетевых систем.



Оценив имеющиеся в атакуемой среде возможности, противник попытается получить доступ к удаленным системам, и, возможно, контроль над ними, предпримет попытки запуска на удаленных системах вредоносных инструментов. Описанную активность называют Боковым перемещением (Lateral Movement). Методы бокового перемещения так же включают средства сбора информации из удаленных систем без использования дополнительных инструментов, таких как утилиты RAT (Remote Access Tools).

Категория: Программирование, Android, iOS

 

Перенос десктопных приложений на .NET Core

Автор: admin от 10-06-2019, 10:40, посмотрело: 29

С тех пор, как я начала работать с сообществом над переносом десктопных приложений с .NET Framework на .NET Core, я заметила, что существует «два лагеря»: представители одного хотят очень простой и короткий список инструкций для переноса своих приложений на .NET Core, в то время как представители другого предпочитают более принципиальный подход с большим количеством исходной информации. Вместо того, чтобы писать документ по типу «швейцарского армейского ножа», мы собираемся опубликовать два сообщения в блоге, по одному для каждого «лагеря»:




  • Данный пост — простой случай. Он ориентирован на простые инструкции и небольшие приложения и рассматривает самый простой способ переноса приложения на .NET Core.

  • Позднее мы опубликуем еще один пост для более сложных случаев. В нем основное внимание будет уделено нетривиальным приложениям, таким как WPF-приложение с зависимостями от WCF и сторонних UI-пакетов.



Если вы предпочитаете смотреть видео, а не читать, то вот видео, где я делаю все, что описано ниже.



Категория: Программирование, Microsoft

 

Nullable Reference типы в C# 8.0 и статический анализ

Автор: admin от 7-06-2019, 11:45, посмотрело: 35

Nullable Reference типы в C# 8.0 и статический анализ



Не секрет, что Microsoft достаточно давно работает над выпуском восьмой версии C#. В недавно состоявшемся релизе Visual Studio 2019 новая версия языка (C# 8.0) уже доступна, но пока ещё только в качестве beta релиза. В планах этой новой версии есть несколько возможностей, реализация которых может показаться не совсем очевидной, или точнее, не совсем ожидаемой. Одним из таких нововведений стала возможность использования Nullable Reference типов. Заявленным смыслом данного нововведения является борьба с Null Reference Exception'ами (NRE).

Категория: Программирование

 

Поддержка Visual Studio 2019 в PVS-Studio

Автор: admin от 4-06-2019, 12:55, посмотрело: 49

Поддержка Visual Studio 2019 в PVS-Studio

Поддержка Visual Studio 2019 в PVS-Studio затронула сразу несколько различных компонентов: сам плагин для IDE, command line приложение для анализа, ядра C++ и C# анализаторов, а также несколько утилит. О том, с какими проблемами мы столкнулись в ходе поддержки новой версии IDE и как их решали, я кратко расскажу в данной статье.

Категория: Программирование

 

Как работает конфигурация в .NET Core

Автор: admin от 25-05-2019, 13:20, посмотрело: 41

Давайте отложим разговоры о DDD и рефлексии на время. Предлагаю поговорить о простом, об организации настроек приложения.



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



public IConfiguration Configuration { get; set; }
public IHostingEnvironment Environment { get; set; }

public Startup(IConfiguration configuration, IHostingEnvironment environment)
{
   Environment = environment;
   Configuration = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .AddJsonFile($"appsettings.{Environment.EnvironmentName}.json")
            .Build();
}


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

Категория: Программирование

 
Назад Вперед