ASP.NET Core: ваше первое приложение на Linux c использованием Visual Studio Code

Автор: admin от 24-02-2017, 23:05, посмотрело: 762

Решил недавно написать небольшое ASP.Net MVC приложение после многолетнего перерыва и знающие люди на Хабре подсказали попробовать новый ASP.Net Core, тем более, что он работает в Линуксе из коробки без необходимости задействовать mono, и, судя по последним тестам, даже показывает неплохую производительность. За основу взял аналогичную статью для Mac, однако здесь в отличии от вдохновившей меня статьи хочу описать процесс пошагово в одном месте, для того, чтобы не пришлось лазить по перекрёстным ссылкам, пытаясь разобраться как установить непонятно для чего предназначенные приложения и пакеты. Такое подробное описание процесса возможно поможет многим избежать граблей, с которыми пришлось столкнуться мне. Несколько фраз и рисунков, в части одинаковой для любой платформы, с правками и корректировками взяты из статьи для Mac.

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

 

Security Week 08: SHA-1 точно всё, уязвимости в роутерах TP-Link, кроссплатформенный ботнет с кодом Mirai

Автор: admin от 24-02-2017, 22:00, посмотрело: 220

Security Week 08: SHA-1 точно всё, уязвимости в роутерах TP-Link, кроссплатформенный ботнет с кодом MiraiБританские ученые доказали, что алгоритму криптографического хеширования SHA-1 точно настал конец. Как-то так вышло, что этой истории я кажется посвятил наибольшее количество упоминаний в дайджестах, возможно из-за того, что с криптографией не шутят: она либо работает, либо нет. Напомню, о чем идет речь: в конце 2015 года команда исследователей из университетов Голландии, Сингапура и Франции опубликовала доклад, в котором поделилась новыми идеями оптимизации алгоритма поиска коллизий при использовании SHA-1. По той оценке реальную атаку можно было провести примерно за 49 дней, потратив на облачные вычислительные мощности около 75000 долларов.

Коллизия — это когда два разных объекта имеют один хеш. Если алгоритм SHA-1 используется для идентификации объекта, то появляется возможность «подсунуть» иной объект так, что «по документам» он будет идентичен оригиналу. И речь идет даже не о взломе шифрованной переписки, хотя SHA-1 по-прежнему довольно активно используется в криптографии. «Объекты» могут быть документами, сертификатами для идентификации определенного сервера: подмена в данном случае открывает широкий простор для кибератак.

Но этот простор — теоретический: подтвердить уязвимость на практике стоит дорого. На этой неделе команда исследователей из Google и голландского CWI Institute сообщили, что они, таки да, смогли (новость, минисайт проекта).

Категория: Информационная безопасность

 

Функциональные паттерны при моделировании предметной области – анемичные модели и компоновка поведений

Автор: admin от 24-02-2017, 19:35, посмотрело: 208

Здравствуйте, Хабр!

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

Функциональные паттерны при моделировании предметной области – анемичные модели и компоновка поведений

Поскольку у нас готовятся книги как по Scala, так и по паттернам предметно-ориентированного проектирования, опубликуем одну из статей сахиба Гоша об идеях, заложенных в его книгу, и спросим, насколько эта книга была бы вам интересна

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

 

Пишем простой DSL на Kotlin в 2 шага

Автор: admin от 24-02-2017, 18:20, посмотрело: 250

Пишем простой DSL на Kotlin в 2 шага


DSL (Domain-specific language) — язык, специализированный для конкретной области применения (Википедия)


На написание этого поста меня натолкнула статья "Почему Kotlin отстой", в которой автор сетует на то, что в Kotlin "нет синтаксиса для описания структур". За некоторое время программирования на Kotlin у меня сложилось впечатление, что в нём если нельзя, но очень хочется, то можно. И я решил попробовать написать свой DSL для описания структуры данных. Вот что из этого получилось.

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

 

15 странностей в Ruby, о которых вам стоит знать

Автор: admin от 24-02-2017, 16:40, посмотрело: 215

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

1. Heredoc + Метод


Если у вас есть какие-то текстовые данные, которые вы хотите встроить в программу, вы можете использовать “heredoc”. В результате вы получите строку, например так:

input = <<-IN
ULL
RRDDD
LURDL
IN

Но дополнительно к этому можно использовать пост-процессинг, например разделить текст по словам. Ruby позволяет делать такое:

input = <<-IN.split
ULL
RRDDD
LURDL
IN

А ещё в Ruby 2.3 появился «волнистый» heredoc <<~. Он удаляет все пробелы, использованные для отступов, распространённую проблему использования heredoc для текста.

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

 

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

Автор: admin от 24-02-2017, 12:15, посмотрело: 195

CDN-провайдер Cloudflare внедрял содержимое памяти своего сервера в код произвольных веб-страницСпециалисты по безопасности из Google обнаружили неприятный баг, чем-то похожий на приснопамятную уязвимость Heartbleed в OpenSSL. Она тоже выдаёт любому желающему криптографические ключи пользователей, а также куки, пароли, содержимое POST-запросов с личными данными, кредитные карты, ключи API и другое содержимое чужих сессий.

Здесь уязвимость ограничена всего одним сервис-провайдером, пусть и таким крупным как Cloudflare. Но в определённом смысле этот баг Cloudbleed хуже, чем Heartbleed, потому что утечка данных происходит спонтанно. Эти страницы рутинно скачиваются краулерами, индексируются поисковыми системами, до сих пор хранятся в архивах веб-страниц и в кэше Google.

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

Категория: Веб-разработка, Информационная безопасность

 

Создание собственной View под Android – может ли что-то пойти не так?

Автор: admin от 24-02-2017, 10:45, посмотрело: 174

Создание собственной View под Android – может ли что-то пойти не так?
«Дело было вечером, делать было нечего» — именно так родилась идея сделать вью с возможностью зума, распределяющую юзеров по рангам в зависимости от кол-ва их очков. Так как до этого я не имел опыта в создании собственных вьюшек такого уровня, задача показалась мне интересной и достаточно простой для начинающего… но, *ох*, как же я ошибался.

В статье я расскажу о том, с какими проблемами мне пришлось столкнутся как со стороны Android SDK, так и со стороны задачи (алгоритма кластеризации). Основная задача статьи – не научить делать так называемыми “custom view”, а показать проблемы, которые могут возникнуть при их создании. Тема будет интересна тем из вас, кто имеет мало (или не имеет вовсе) опыта в создании чего-то подобного, а также тем, кто хочет словить лулзов с автора в сто первый раз уверовать в «гибкость» Android SDK.

Категория: Веб-разработка, Android

 

Upspin: новая глобальная файловая система от Google

Автор: admin от 24-02-2017, 09:55, посмотрело: 1170

Upspin: новая глобальная файловая система от Google

На днях стало известно о новом проекте Upspin, который разрабатывается группой инженеров из корпорации Google. Основная задача участников проекта — создание фреймворка для обеспечения безопасного совместного доступа к файлам. Upspin, если коротко, задает набор протоколов, интерфейсов и прочих программных компонент, что позволяет связать вместе различные данные, включая ФС и сервисы хранения. Написан фреймворк на язык Go. Распространяется он под лицензией BSD. Стоит отметить, что сам проект — не официальная разработка Google, а «хобби» сотрудников.

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

Категория: Компании » Google

 

Детектим виртуальную машину на C#: 1 уровень

Автор: admin от 24-02-2017, 08:45, посмотрело: 276

Одним жуть каким прохладным январским утром от знакомого прилетел вопрос — как на C# определить, не запущена ли программа в ОС (оконное приложение в ОС Windows 7 или новее) на виртуальной машине.


Требования к такому детектору были достаточно жёсткими:


  • Должен быть полностью в исходных кодах,

  • Должен собираться с помощью Visual Studio,

  • Должен работать из-под аккаунта непривилегированного пользователя (нельзя использовать методы, требующие, к примеру, установки драйверов устройств, или иных операций, для которых нужны права администратора),

  • Разрешено использовать .NET Framework 4.5 и никаких лишних зависимостей (типа Visual C++ Redistributable Package).


  • Под катом описание реализованного детектора на C# (в следующей части — с некоторыми элементами C++) и приличным количеством неприличного кода с использованием Visual Studio 2015 Community.


    Структура публикации



    • 1 уровень. Изучение матчасти и простейших существующих решений:


      • немного теории касательно виртуализации,

      • реализация проверки ВМ с помощью данных из Windows Management Instrumentation (WMI).



    • 2 уровень. Поиск статей и публикаций про детектирование запуска в виртуальных машинах:


      • допиливаем реализацию с WMI,

      • работа с инструкцией CPUID.



    • 3 уровень. Поиск материалов с хакерских конференций:


      • допиливаем работу с CPUID,

      • делаем сводную таблицу параметров и результатов тестирования.


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

     

    Разработка SELinux-модуля для пользователя

    Автор: admin от 24-02-2017, 01:20, посмотрело: 187

    Это вторая статья из цикла


    Разработка SELinux-модуля для пользователя
    Сегодня мы поговорим о SELinux-пользователях, их создании, привязке, правам и другим вещам.
    Зачем это делать? Есть много причин. Для меня главной причиной было выдать доступ для техподдержки для рутинных операций ( таких как ребут, чистка логов, диагностика итд ), но без доступа к критичным данным и изменению системных функций.

    Предположения


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

    • Прочитал прошлую статью

    • Имеет под рукой CentOS 7

    • На котором установлены пакеты setools-console, policycoreutils-devel, selinux-policy-devel, policycoreutils-newrole

    • И включен SELinux в режиме enforcing с политикой targeted или minimum


    Это все про вас? Тогда поехали!

    Категория: Веб-разработка, Информационная безопасность, Linux