Релиз Yii 2.0.15 и расширений баз данных с исправленными уязвимостями

Автор: admin от 20-03-2018, 19:50, посмотрело: 541

Сегодня мы выпускаем обновления Yii для нескольких последних версий 2.0.x и официальных расширений поддержки нереляционных баз данных для исправления найденных уязвимостей. Патчи исправляют проблему в методах слоя ActiveRecord: findOne() и findAll(), которые могут допустить SQL инъекцию, если входящие данные не подготовлены должным образом.



Мы рассматриваем это как уязвимость в Yii потому что документация для этих методов не содержала явного предупреждения о том, что в некоторых случаях передача нефильтрованых пользовательских данных может быть опасной. Мы благодарим Analitic1983 (GitHub) за обнаружение этой уязвимости.



Проблема относится в большей степени не к самому фреймворку, а к документации по использованию данных методов в приложении. Мы обновили документацию и дополнительно привели примеры кода, который может быть опасен. Однако, обновление документации не исправит приложения, в которых разработчики уже используют методы findOne() и findAll() небезопасно. Чтобы избежать наихудшего сценария – SQL инъекции, мы также изменили поведение этих методов и добавили принудительную фильтрацию входящих данных, которая ограничивает перечень возможных имён столбцов списком свойств модели ActiveRecord.



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

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

 

Реализуем свой оператор в Entity Framework Core

Автор: admin от 20-03-2018, 19:50, посмотрело: 121

Однажды пасмурным мартовским субботним утром я решил посмотреть, как обстоят дела у Майкрософта в благом деле по трансформированию мастодонта Entity Framework в Entity Framework Core. Ровно год назад, когда наша команда начинала новый проект и подбирала ORM, то руки чесались использовать все как можно более стильное и молодежное. Однако, присмотревшись к EFC, мы поняли, что он еще очень далек продакшна. Очень много проблем с N+1 запросами (сильно улучшили во 2й версии), кривые вложенные селекты (пофиксали в 2.1.0-preview1), нет поддержки Many-to-Many (все еще нет) и вишенка на торте — отсутствие поддержки DbGeometry, что в нашем проекте было очень критично. Примечательно, что последняя фича находится в road map проекта с 2015 года в списке высокоприоритетных. У нас в команде есть даже шутка на эту тему: "Эту задачу добавим в список высокоприоритетных". И вот прошел один год с последней ревизии EFC, вышла уже вторая версия данного продукта и я решил проверить, как обстоят дела.

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

 

Книга «Node.js в действии. 2-е издание»

Автор: admin от 20-03-2018, 19:50, посмотрело: 2492

Книга «Node.js в действии. 2-е издание»
Второе издание «Node.js в действии» было полностью переработано, чтобы отражать реалии, с которыми теперь сталкивается каждый Node-разработчик. Вы узнаете о системах построения интерфейса и популярных веб-фреймворках Node, а также научитесь строить веб-приложения на базе Express с нуля. Теперь вы сможете узнать не только о Node и javascript, но и получить всю информацию, включая системы построения фронтэнда, выбор веб-фреймворка, работу с базами данных в Node, тестирование и развертывание веб-приложений.



Технология Node все чаще используется в сочетании с инструментами командной строки и настольными приложениями на базе Electron, поэтому в книгу были включены главы, посвященные обеим областям. Внутри поста будет рассмотрен отрывок «Хранение данных в приложениях»

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

 

Марвин Мински «The Emotion Machine»: Введение

Автор: admin от 20-03-2018, 19:50, посмотрело: 317

Марвин Мински «The Emotion Machine»: Введение


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



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



Мы также способны на то, что не может ни одно другое живое существо: как только наш образ мышления терпит крах, мы начинаем думать над своими мыслями — такое рефлексивное мышление помогает найти ошибку в рассуждениях и помогает изобрести новые, более эффективные образы мышления. Однако мы все еще очень мало знаем о том, как наш мозг с этим справляется. Как работает воображение? Что такое сознание? Что такое эмоции, чувства, мысли? И в конце концов как мы думаем?



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

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

 

Компьютерное зрение и Интернет вещей

Автор: admin от 20-03-2018, 19:50, посмотрело: 225

Компьютерное зрение и Интернет вещей


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



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



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

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

 

Почему не работают Уставы и Планы управления проектом?

Автор: admin от 20-03-2018, 19:45, посмотрело: 99

Мы приходим к Заказчику и говорим ему: вот так мы будем планировать проект, вот так будем управлять изменениями, вот так будем управлять рисками, вот так будем проводить совещания, вот так будем эскалировать проблемы и принимать решения, вот такие сроки будут у нас на согласование, вот такая периодичность будет статусных совещаний и т.д. И приносим ему это в виде объемного документа этак страниц на 30-50 регламентирующего текста. Заказчик смотрит на это «широко закрытыми глазами» и говорит: «Круто!». То, что не соотносится с практикой, принятой у Заказчика, он предложит исправить, но в остальном документ будет принят.

А дальше началась жизнь и процессы прошли своим путем, принятия решений своим путем, а документ остался на полке. Иногда РП достает его чтобы показать, что Заказчик не соблюдает установленные сроки, либо нарушает другие договоренности. Но это делается, когда на проекте нарастает напряжение и сторонам нужно защищаться. Есть ситуации, когда РП пытается актуализировать процессы, но часто на него смотрят «косо» как на бюрократа, который вместо результата занимается «бумажками».

В итоге такой документ выполняет функцию защиты РП-ника или Подрядчика, либо маркетинговую функцию для Подрядчика: «Круто! Вы работаете по проектной технологии!». А хотелось бы, чтобы документ работал.

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

 

Как я парсил БД C-Tree, разработанную 34 года назад

Автор: admin от 20-03-2018, 19:45, посмотрело: 97

Как я парсил БД C-Tree, разработанную 34 года назад

Прилетела мне недавно задача дополнить функционал одной довольно старой програмки (исходного кода программы нет). По сути нужно было просто сканить периодически БД, анализировать информацию и на основе этого совершать рассылки. Вся сложность оказалась в том, что приложение работает с БД c-tree и написано аж в 1984 году.

Порывшись на сайте производителя данной БД нашёл некий odbc драйвер, однако у меня никак не получалось его подключить. Многочисленные гугления так же не помогли нормально сконнектиться с базой и доставать данные. Позже было решено связаться с техподдержкой и попросить помощи у разработчиков данной базы, однако ребята честно признались что уже прошло 34 года, всё поменялось 100500 раз, нормальных драйверов для подключения на такое старьё у них нет и небось уже тех программистов в живых тоже нету, которые писали сие чудо.
Порывшись в файлах БД и изучив структуру, я понял, что каждая таблица в БД сохраняется в два файла с расширением *.dat и *.idx. Файл idx хранит информацию по id, индексам и т.д. для более быстрого поиска информации в базе. Файл dat содержит саму информацию, которая хранится в табличках.

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

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

 

Amazon S3 + 1С. Часть 1. Интерфейс

Автор: admin от 20-03-2018, 19:45, посмотрело: 221

Amazon S3 + 1С. Часть 1. Интерфейс

Всем привет, с вами Низамов Илья и сегодня я начинаю цикл статей по написанию обработки взаимодействия с облаком Amazon s3 из 1С.

Обработка Amazon s3 позволяет получат список файлов по фильтру, скачать необходимые файлы с Amazon s3 используя amazon s3 api, отправлять файлы напрямую из 1С используя multipart/form-data.

Основная сложность работы с облаком Amazon s3 связана с тем, что 1С в http запросах умеет использовать только basic аутентификацию, в Amazon же используется AWS Signature
Version 4. Вот такую аутентификацию я и буду создавать используя средства 1С.

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

 

PowerShell Empire: продвинутая пост-эксплуатация Windows систем

Автор: admin от 20-03-2018, 19:45, посмотрело: 194

PowerShell Empire: продвинутая пост-эксплуатация Windows систем


PowerShell Empire — это уникальныи пост-эксплуатационныи PowerShell агент, построенныи на базе крипто-надежных соединении и гибкои архитектуры. Empire предоставляет возможность запускать PowerShell агенты без необходимости использования powershell.exe, с быстрым запуском пост-эксплутационных модулеи, которые варьируются от кеилоггеров до Mimikatz, и позволяет успешно избегать сетевое обнаружение, при этом весь этот функционал собран в одном удобном и гибком фреимворке.

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

 

Hessian-Free оптимизация с помощью TensorFlow

Автор: admin от 20-03-2018, 19:45, посмотрело: 202

Добрый день! Я хочу рассказать про метод оптимизации известный под названием Hessian-Free или Truncated Newton (Усеченный Метод Ньютона) и про его реализацию с помощью библиотеки глубокого обучения — TensorFlow. Он использует преимущества методов оптимизации второго порядка и при этом нет необходимости считать матрицу вторых производных. В данной статье описан сам алгоритм HF, а так же представлена его работа для обучения сети прямого распространения на MNIST и XOR датасетах.

Hessian-Free оптимизация с помощью TensorFlow

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

 
Назад Вперед