Как стать автором
Обновить
2
0
Reshetar Valeriy @valear

CTO / Product Owner / CIO

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

Курс MIT «Безопасность компьютерных систем». Лекция 1: «Вступление: модели угроз», часть 2

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

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Всего голосов 17: ↑16 и ↓1+15
Комментарии0

Курс MIT «Безопасность компьютерных систем». Лекция 18: «Частный просмотр интернета», часть 3

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

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
Лекция 11: «Язык программирования Ur/Web» Часть 1 / Часть 2 / Часть 3
Лекция 12: «Сетевая безопасность» Часть 1 / Часть 2 / Часть 3
Лекция 13: «Сетевые протоколы» Часть 1 / Часть 2 / Часть 3
Лекция 14: «SSL и HTTPS» Часть 1 / Часть 2 / Часть 3
Лекция 15: «Медицинское программное обеспечение» Часть 1 / Часть 2 / Часть 3
Лекция 16: «Атаки через побочный канал» Часть 1 / Часть 2 / Часть 3
Лекция 17: «Аутентификация пользователя» Часть 1 / Часть 2 / Часть 3
Лекция 18: «Частный просмотр интернета» Часть 1 / Часть 2 / Часть 3
Всего голосов 13: ↑12 и ↓1+11
Комментарии0

Как правильно готовить продуктовую стратегию? Руководство для менеджеров продуктов

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

Помните правила великого Кутузова, который четко и ясно видел стратегические цели? Он считал, что стратегия должна всегда превалировать над тактикой. Для победы вполне допустимо пожертвовать отдельной битвой, ведь «главное не крепость взять, а войну выиграть».

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

Заглядываем под капот нового Gmail

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

Полгода назад Google представила обновленную версию своего почтового сервиса. Несмотря на то что многие пользователи были недовольны редизайном, в том числе и на Хабре, это теперь основной интерфейс для пользователей.


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

Читать дальше →
Всего голосов 138: ↑136 и ↓2+134
Комментарии93

Черный ящик для дома: собираем NAS своими руками, часть 1

Время на прочтение17 мин
Количество просмотров264K
Будь я работником макаронной фабрики, то сейчас ломал бы голову над тем, куда девать этак 500 упаковок макарон по полкило штука. К счастью, когда начальство решает премировать сисадмина “натурой”, получение в подарок фургона сухого пайка не грозит, хотя имеются неплохие шансы стать обладателем нескольких десятков килограмм откровенного лома. Однако в этот раз мне повезло – в качестве корпоративного подарка я получил пару новеньких WD Re 2004FBYZ на 2 терабайта каждый, и блок питания Thermaltake Smart DPS G 750W. Вот только что делать с дисками? Ставить в домашний комп – слишком расточительно даже для меня, все-таки Enterprise Class, да и нужды особой нет. Куда практичнее на их основе собрать NAS. Разумеется, не какую-нибудь файлопомойку, а высоконадежное хранилище – эдакий “черный ящик” для критически важных данных. Плюс к этому, можно совместить приятное с полезным – раз уж принято решение целиком перевести инфраструктуру на “умные” БП (а именно так Thermaltake позиционирует линейку Smart DPS), неплохо бы воочию увидеть, как это работает.

Но есть одна загвоздка – на данный момент фирменное приложение существует только под Windows. Для корпоративного ЦОДа эта операционная система хороша, но для домашнего файлового хранилища ужасна и крайне нерентабельна. Посему, я решил сделать два поста. В этом мы поднимем NAS на основе Windows Server 2008 r2 (убедившись, что “окошки” и “домашний NAS” – понятия несовместимые), и посмотрим, на что способна DPS G App 2.0. Во втором же соберем бюджетный NAS на основе NAS4Free, создав по-настоящему надежную систему.
Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии126

Как устроена MySQL-репликация

Время на прочтение12 мин
Количество просмотров45K
Андрей Аксёнов

Как устроена MySQL-репликация


Андрей Аксенов (Sphinx), shodan


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


Мы немного пройдемся по теории, попытаемся объяснить, как это все работает внутри, а после этого вы с утроенными силами сможете сами нырнуть в документацию.


Что такое репликация, в принципе? Это копирование изменений. У нас есть одна копия БД, мы хотим с какой-то целью еще одну копию.


Репликация бывает разных видов. Разные оси сравнения:


  • степень синхронизации изменений (sync, async, semisync);
  • количество серверов записи (M/S, M/M);
  • формат изменений (statement-based (SBR), row-based (RBR), mixed);
  • теоретически, модель передачи изменений (push, pull).

Читать дальше →
Всего голосов 44: ↑37 и ↓7+30
Комментарии11

Интерфейс выкладки (и пара маленьких советов, как не облажаться, выбирая товар)

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


Когда вы открываете холодильник дома, там вас встречает интерфейс выкладки — у кого-то есть система, у кого-то нет, а кто-то держит там ствол и носки. Так вот, в магазине — выкладка это то, где вы видите товар, откуда его берёте пощупать и где его часто покупаете.

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

Скоропортящийся товар учитывает вашу лень. Поэтому в группе одинаковых бутылок молока, например, магазин заинтересован продать вам самую близкую к дедлайну. Она будет лежать первой. Самой далёкой будет лежать самая свежая — её заберут последней. Поэтому, возможно, имеет смысл завести привычку на автопилоте брать что-то поглубже на любых холодных полках.
Читать дальше →
Всего голосов 65: ↑60 и ↓5+55
Комментарии99

Как мы переделали сеть «Аэроэкспресса»: интересный пример скачка на уровень вверх

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


«Аэроэкспресс» — молодая компания. Пару лет назад, когда мы начали реализовывать проект по модернизации сети передачи данных, компания очень быстро развивалась. Настолько быстро, что их внутренний ИТ-отдел в какой-то момент понял: пора переделывать сеть, потому что пунктов продажи билетов и других терминалов стало слишком много и ручные процедуры настройки сети уже давно пора заменять. Это логический этап в эволюции любой компании. На этом этапе заказчик продумал правильную архитектуру и начал оптимизировать инфраструктуру с учётом запаса прочности при дальнейшем масштабировании мощностей. Цель — сделать всё и с первого раза, чтобы избежать возможных проблем в будущем.

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

Следующей задачей стало обеспечение возможности продавать билеты, даже если метеориты попадут в два любых случайных объекта инфраструктуры (включая дата-центр «Аэроэкспресса» и коммутаторы ядра М9).

И ещё — сделать IP-телефонию внутри компании, способной работать даже при физическом отключении от интернета.

Параллельно мы подняли Ethernet поверх IP (MAC по IP) и сделали ещё пару забавных и полезных фич.
Читать дальше →
Всего голосов 51: ↑47 и ↓4+43
Комментарии9

Процессоры, ядра и потоки. Топология систем

Время на прочтение12 мин
Количество просмотров290K
В этой статье я попытаюсь описать терминологию, используемую для описания систем, способных исполнять несколько программ параллельно, то есть многоядерных, многопроцессорных, многопоточных. Разные виды параллелизма в ЦПУ IA-32 появлялись в разное время и в несколько непоследовательном порядке. Во всём этом довольно легко запутаться, особенно учитывая, что операционные системы заботливо прячут детали от не слишком искушённых прикладных программ.



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

Цель статьи — показать, что при всём многообразии возможных конфигураций многопроцессорных, многоядерных и многопоточных систем для программ, исполняющихся на них, создаются возможности как для абстракции (игнорирования различий), так и для учёта специфики (возможность программно узнать конфигурацию).
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии18

Material Design: на Луну и обратно

Время на прочтение11 мин
Количество просмотров389K
“Это унылое диалоговое окно действительно нужно?”



В этой статье я изложил главные принципы Material Design и дал советы по их воплощению. Текст написан по следам мастер-класса для разработчиков, который мы, Роботы, устраивали совместно с российским офисом Google (Think Mobile).


Когда-то все продукты Google выглядели по-разному плохо. Даже один продукт на разных платформах выглядел неконсистентно.

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

При чем тут Кеннеди?
Легенда такова: президент Кеннеди инициировал программу полёта человека на Луну (если верить, что этот полёт когда-либо был). А большой начальник в Google Ларри Пейдж исповедует принцип, что продукты нет смысла улучшать на 10% — они должны быть в 10 раз лучше, чем у конкурентов. Если уж запускать продукт, то сразу на Луну. Вот и здесь было решено круто всё переделать.

Читать дальше →
Всего голосов 146: ↑135 и ↓11+124
Комментарии120

DevTips: Советы веб-разработчику (33-48)

Время на прочтение5 мин
Количество просмотров31K
И вновь в эфире цикл переводов полезных советов для веб-разработчика. На этот раз автор расширил спектр исследуемых инструментов, добавив туда редактор Sublime Text и фреймворк Node.js. Предыдущие части: 1-16, 17-32.

Поехали!

Содержание:
   33.  Разворачивание упрощенной записи CSS-свойств
   34.  Определение совпадения селекторов по цвету
   35.  Использование визуальной навигации и просмотр снятых скриншотов процесса загрузки страницы
   36.  Sublime Text: нечеткий поиск при помощи функциональности GOTO
   37.  Быстрое изменение значения CSS-свойств при помощи клавиатуры и колеса мыши
   38.  Прокрутка элемента в области видимости
   39.  Node.js: Использование Babel для запуска ES6
   40.  Переход к просмотру и редактированию CSS или Javascript-файлов из панели «Elements»
   41.  Отображение значений Javascript-переменных рядом с кодом в процессе отладки
   42.  Использование цветовой группировки в панели «Network» для упрощения идентификации типа ресурса
   43.  Активация псевдо классов DOM-элемента
   44.  Инспектирование самих инструментов разработчика
   45.  Запуск выбранного блока кода из панели «Sources»
   46.  Установка условных точек останова
   47.  Переход к следующему вхождению выбранной строки при помощи горячих клавиш
   48.  Редактирование CSS-файла в панели «Sources» и упрощенное изменение значений CSS-свойств
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии0

Как правильно внести свою лепту в Open Source проект: простые подсказки

Время на прочтение6 мин
Количество просмотров69K
Open Source проекты с каждым днём набирают всё большие обороты, появляются новые, активно развиваются популярные.
Такие проекты как Bootstrap, Angular.js, Elasticsearch, Symfony Framework, Swift и многие другие привлекают новых разработчиков, их сообщество растёт. Всё это даёт огромный рост проектам, а самим разработчикам интересно поучаствовать в разработке чего-то, чем пользуется весь мир.

Я, как и многие другие программисты, не устоял и также время от времени участвую в разработке Open Source проектов, в основном на PHP. Но когда я начинал, я столкнулся с проблемой — я не знал, как правильно организовать процесс «контрибьютинга», с чего начать, как сделать так, чтобы мой Pull Request рассмотрели и т.д.

Всем начинающим «контрибьютерам», которые столкнулись с похожим проблемами, добро пожаловать под кат.


Читать дальше →
Всего голосов 80: ↑69 и ↓11+58
Комментарии41

Проектирование интернет-магазина: личный кабинет, корзина, доставка-оплата, рассылка и другое

Время на прочтение16 мин
Количество просмотров148K
Очередная статья большого обзора функционала интернет-магазинов. Сегодня я расскажу про личный кабинет, избранное, интеграцию с социальными сетями, корзину, доставку-оплату, рассылку и уведомления. Всего, вместе с этой частью статьи, я рассмотрел около 50 модулей современных интернет-магазинов.

Прошлые статьи серии можно найти тут:


«Серьезное проектирование серьезного магазина. Часть 1. Исследования»
«Серьезное проектирование серьезного магазина. Часть 2. Модули интернет-магазина»
«Серьезное проектирование серьезного магазина. Часть 3. Карточка товара и не только»
«Серьезное проектирование серьезного магазина. Часть 4. Субституты, комплементы, сравнение и другие инструменты увеличения конверсии»

Регистрация / личный кабинет


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

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

Рис. 1. Личный кабинет.

image

Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии22

Как писать главную сайта (и чего там не должно быть)

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


Привет! Я продолжаю про буквы для блога Текстброкера — моих хороших друзей.

Начнём с того, что сегодня, пожалуй, уже не осталось сайтов, где главная страница — единая точка входа. Это во времена Арпанета был список нод с адресами, по которым надо было ходить. Это у BBS были меню и текст на входе. Сейчас люди заходят на ваш сайт со всех сторон. Поэтому каждая значимая страница – главная. То есть к странице любого товара на сайте интернет-магазина надо относиться как к главной. И к странице услуги. И к любой другой.

На главную люди часто попадают либо через поиск, набирая название вашей компании, либо через бумагу или ещё каким-то «социальным» образом, например, когда с ними делятся ссылкой.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии8

Хватит использовать jQuery, вы способны сделать лучше без него

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

Введение


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

Читать дальше →
Всего голосов 38: ↑18 и ↓20-2
Комментарии42

Архитектура open source-приложений: Как работает nginx

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


Мы в «Латере» занимаемся созданием биллинга для операторов связи и рассказываем на Хабре о разработке своего продукта, а также публикуем интересные технические переводные материалы. И сегодня мы представляем вашему вниманию адаптированный перевод одной из глав книги «Архитектура open-source-приложений», в которой описываются предпосылки появления, архитектура и организация работы популярного веб-сервера nginx.
Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии10

Как мы внедряли GLPI

Время на прочтение11 мин
Количество просмотров47K
Действие происходит в одной из стран Центральной Азии, называть страну, компанию и область ее деятельности я не буду. Надеюсь, заинтриговал. Хотя, на самом деле это несущественно. Мне хотелось бы рассказать как мы начали с пустого места и выстроили достаточно адекватную и управляемую структуру, в которой все разложено по полочкам. Так что это рассказ не столько о возможностях платформы, сколько об опыте ее использования в качестве системы управления департаментом в реальных условиях.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии4

Управление конфигурацией в программном проекте

Время на прочтение6 мин
Количество просмотров14K
Сначала все было просто. Молодость, задор. Проект пилили несколько программистов. Все кодили, по мере готовности копировали код на общую виртуалку, изредка попинывали админа на предмет доставить какой-нибудь пакет или поправить конфиг. Как только понимали, что все, шли делать релиз. Сначала backup, потом старшой собирал всю свою крутизну в кулак, копировал проект на production сервер и, при содействии админа, добивался, чтобы оно там заработало. Команда выжидала два дня, убеждалась, что очереди из благодарных пользователей с топориками не образовалось, и, с чувством гордости за выполненную работу, шла пить пиво.

Потом все чуть-чуть повзрослели. Появились и начали как-то использоваться redmine/jira/etc, git/svn, jenkins, spinx-docs/rubydoc/doxygen/etc, wiki, unit тесты. Появились подпроекты, стенд подрос. Production сервачков стало несколько. Админ поднял salt/puppet/etc, мониторинг, сидит в своем логове как паук, правит конфиги на salt-master и дергает оттуда state.highstate.
А дальше что?
Всего голосов 18: ↑14 и ↓4+10
Комментарии0

Примеры фишинговых сообщений электронной почты

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


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

Внимание, под катом много изображений.
Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии34

Использование AJAX-обработчика WordPress

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


WordPress, будучи одной из самых популярных CMS в мире, снабжен подробной документацией, а точнее, даже двумя. В связи с чем ни в коем случае не стоит воспринимать этот текст как описание неких “best practices” и уж точно никто не заставляет слепо следовать описанному. Статья — просто быстрый ответ на вопрос «как?!» (следующий абзац) и подробное описание всего, что нужно знать чтобы заставить WordPress отвечать на AJAX-запросы (вся остальная статья).

Кратко


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

Итак, работает это, «WordPress-way», вот так:

  1. На бекенде с помощью функции admin_url получаем ссылку на обработчик AJAX-запросов и передаем ее во фронтенд одним из способов. Именно к этой ссылке мы будем делать наши запросы.
  2. На бекенде регистрируется хук с функцией для обработки некоего экшена. Назовем этот экшен, например, get_posts.
  3. Фронт-енд делает запросы к URL-у из пункта 1, передавая имя экшена. Например, ?action=get_posts.
    На бек-енде, если на экшен зарегистрирован хук, выполняется заданная нами функция.


Вот так вот просто. Теперь подробнее.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии5
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность