Search
Write a publication
Pull to refresh
4
0
Lev Lybin @lybin

Разработчик Python / Team Lead Ведущий (Lead)

Send message

Работа с памятью (и всё же она есть)

Reading time13 min
Views108K
Существует распространенное мнение, что «рядовому» PHP разработчику практически не нужно заботиться об управлении памятью, однако «заботиться» и «знать» всё же немного разные понятия. Попытаюсь осветить некоторые аспекты управлению памятью при работе с переменными и массивами, а также интересные «подводные камни» внутренней оптимизации PHP. Как вы сможете убедиться, оптимизация это хорошо, но если не знать как именно она «оптимизирует», то можно столкнуться с «неочевидными граблями», которые могут вас заставить изрядно понервничать.

Читать дальше →

Маленький ползучий жук на солнечной батарее

Reading time2 min
Views21K
Давно хотелось сваять такого жука, чтобы росту был он небольшого, ползал почти как настоящий, кушать при этом не просил, а питался бы от солнца.

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

Абсолюта во всем достичь не получилось, но попытка сделать такого робота определенно удалась.

За основу была взята продукция китайского производства — «самая маленькая в мире машинка на солнечной батарее», «будильник китайский»; и продукция российского производства — скрепки.

Читать дальше →

Хранение паролей в Chrome

Reading time2 min
Views452K

Здравствуйте!

Не так давно у меня возникла идея о создании своей личной программы для бэкапа паролей Google Chrome. Да, в интернете очень много подобных программ, но результат паранойи (что пароли сливаются на чей то сервер «про запас»), да и желание узнать, чем дышит любимый браузер — перевесили чашу весов.

Читать дальше →

Критическая уязвимость Windows 7 x64: BSOD и компрометация системы

Reading time1 min
Views8.9K
image

Известный хакер webDEViL опубликовал в своем твиттере сообщение о том, что специальным образом сформированная web-страница (суть ясна из скриншота), содержащая iframe и просматриваемая браузером Safari, вызывает BSOD-ошибку в системе и позволяет злоумышленнику выполнить произвольный код на атакуемой системе.

Наличие уязвимости обусловлено ошибкой в файле win32k.sys, который уже ранее был неоднократно отмечен в качестве виновника критических ошибок в Win XP. Успешная эксплуатация приводит к выполнению кода с привилегиями уровня ядра системы.

Уязвимости подтверждена 64-битная версия Windows 7, однако и другие системы могут быть скомпроментированы.

Патча на данный момент не существует.

[Источник]

UPD: хабрапользователь KollinZ снял видео, иллюстрирующее уязвимость.

Посмотреть видео

Android + Arduino + 4 колеса

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

Как развивалось помешательство, я решил описать в статье. Получилось длинно, но может кому-нибудь будет интересно. Думаю, статья ориентирована на тех, кто ещё не практиковался в робототехнике.

Вот что получилось в результате. Видео винтажное, снималось владельцем iPhone, а они ведь затейники, ну вы знаете. Звук я оставил закадровый сознательно, чтоб всё жужжало как взаправду.



Читать дальше →

Нужна ли авторизация после регистрации?

Reading time1 min
Views5K
Занимаясь проектированием одного сервиса, я задумался: имеет ли смысл авторизовать пользователя сразу после регистрации или лучше не делать этого? С одной стороны, опыт подавляющего большинства сайтов говорит нам о том, что посетители привыкли к тому, что после процедуры регистрации им больше ничто не мешает пользоваться услугами сайта. С другой, многие используют всевозможные приложения и менеджеры паролей (интегрированные в браузер или сторонние сервисы), а значит, при следующем входе им придется вспоминать свои логин-пароль вместо того, чтобы войти почти автоматически.

image


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

Если кто-то захочет попробовать, я сделал простой пример системы, который показывает общее развитие сценария.
Читать дальше →

Демоны на PHP

Reading time4 min
Views76K
Памятка начинающему экзорцисту.

Прежде, чем начать: я знаю, что такое phpDaemon и System_Daemon. Я читал статьи по этой тематике, и на хабре тоже.

Итак, предположим, что вы уже определились, что вам нужен именно демон. Что он должен уметь?
  • Запускаться из консоли и отвязываться от неё
  • Всю информацию писать в логи, ничего не выводить в консоль
  • Уметь плодить дочерние процессы и контролировать их
  • Выполнять поставленную задачу
  • Корректно завершать работу

Отвязываемся от консоли


// Создаем дочерний процесс
// весь код после pcntl_fork() будет выполняться двумя процессами: родительским и дочерним
$child_pid = pcntl_fork();
if ($child_pid) {
    // Выходим из родительского, привязанного к консоли, процесса
    exit();
}
// Делаем основным процессом дочерний.
posix_setsid();

// Дальнейший код выполнится только дочерним процессом, который уже отвязан от консоли

Читать дальше →

Разгони свой сайт – автоматическая СКЛЕЙКА + GZIP

Reading time9 min
Views16K
Разгонись

Есть куча советов как убыстрить отдачу сайта – это и статика через nginx и кластеризация и куча еще всяческих хитрых технологий. Однако во всех книжках, советующих как можно повысить загрузку сайтов можно найти две постоянно повторяющиеся темы – «склеивание CSS/JS» и «включение сжатия».
Читать дальше →

Наносим удар по ddos ботнету своими силами

Reading time7 min
Views35K


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

Читать дальше →

Семантическое управление версиями 1.0.0-rc.1

Reading time6 min
Views18K
В мире разработки программного обеспечения, существует страшное место, называемое «ад зависимостей». Чем больше ваша система, тем больше шанс, что в один из дней вы попадете в эту ловушку.

В системе с большим количеством зависимостей, выпуск новых пакетов может быстро превратиться в кошмар. Если зависимости слишком прочные, вы не можете обновить пакет, не обновив при этом версии всех зависимых пакетов. Если зависимости слишком свободные, у вас возникнут проблемы с распущенностью версий. «Ад зависимостей», это когда слишком прочные, или наоборот, слишком свободные зависимости не дают вам легко и безопасно развивать ваш проект.
Читать дальше →

Уязвимость Skype позволяет определить IP-адрес конкретного пользователя

Reading time1 min
Views19K

Обнаруженная дыра в безопасности Skype позволяет определить IP-адрес пользователя не просто во время звонка, а даже в том случае, если тот не отвечает на вызов и установление связи не происходит.

Автор исследования — профессор информатики Кейт Росс (Keith Ross) политехнического института университета Нью-Йорка — объясняет суть уязвимости в возможности установки прямой связи (P2P) между атакуемыми компьютерами и компьютером хакера, что и позволяет помимо такой информации как Skype ID получить и IP-адрес пользователя.

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

Интересным является то, что исследование по безопасности, установившее наличие бреши, было выполнено профессором Россом еще в 2010 году и тогда же о ней была поставлена в известность сама Skype.Тем не менее, говорит профессор, никакого ответа он до сих пор не получил, хотя "… провести выявление IP-адреса абонента Skype может «любой хакер уровня колледжа».

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

[Источник]

Безопасная небезопасная почта от bigmir)net

Reading time2 min
Views18K
Не знаю баг это или фича, но почта от bigmir)net страдает как минимум одним очень существенным недостатком — из неё очень сложно разлогиниться. После нажатия кнопки «Выйти», мы действительно выходим из почты, и попадаем на главную портала. Пользователю кажется, что он вышел из своей почты, он спокойно встает из-за компьютера, рассчитывается с оператором и выходит из интернет салона. В это время он мог бы считать, что почты у него больше нет. Если бы знал.
Читать дальше →

В США разгорается скандал о незаконном использовании пользовательских данных

Reading time4 min
Views6.3K
Начало детективной истории

Что если наши умные телефоны следят за нами? Оказывается, за действиями пользователя могут следить практически любые телефоны. Это не очередной сюжет фильма про “большого брата”, это наша реальность.
Случайно я наткнулся в сети на интересный топик на xda-developers. Тревор Экхарт (Trevor Eckhart), девелопер, копался в программных кодах Андроид-телефона от HTC и нашел интересную вещь. В прошивке телефона содержалась программа, которая работала в скрытом от пользователя режиме.
Оказывается, компания HTC встраивает в свои устройства программы, которые позволяют собирать разнообразную статистику.
Читать дальше →

Делаем приватный монитор из старого LCD монитора

Reading time2 min
Views983K


Вы наконец-то можете сделать кое-что со своим старым LCD монитором, который завалялся у Вас в гараже. Превратите его в шпионский монитор! Для всех вокруг он будет выглядеть просто белым экраном, но не для Вас, потому что у Вас будут специальные «волшебные» очки.

Всё что Вам нужно – это пара старых очков, нож для бумаги и растворитель для краски.

Читать дальше →

JavaScript для чайников. Всё что вы хотели знать о функциях но боялись спросить

Reading time4 min
Views25K
Как-то незаметно для себя, я решил отойти от возни с классами и паттернами, и разобраться с самыми обычными Js функциями. Думал, что будет достаточно скучно, но ошибся — оказалось очень даже интересно.

В этой статье я расскажу об особенностях объявления функций, и некоторых полезных паттернах (кхе-хе, да, они есть и тут)

Читать дальше →

Новичкам про управление шириной канала в Linux

Reading time7 min
Views77K
Некоторое время назад меня попросили настроить в удаленном филиале простейшую балансировку трафика. Работают они, бедолаги, через ADSL, и отправка электронных писем большого объема (сканы документов) забивает им весь обратный канал, что приводит к проблемам в работе с офисными онлайн-программами через VPN.
В качестве шлюза у них используется Linux (Fedora). До этого я пару раз видел, как подобная балансировка настраивается через ipfw на FreeBSD, а так как знаю механизм iptables достаточно хорошо, не ожидал особых проблем. Но поискав в Интернете, я был неприятно удивлен тем, что iptables мне тут совсем не помощник. И знания о порядке прохождения пакетов через его таблицы и правила мне почти не пригодятся. Нужно изучать tc из пакета iproute2.

Неожиданно для себя, я потратил два дня, для того чтобы более-менее разобраться в балансировке трафика средствами iproute2. Сначала попалась не самая лучшая для новичка статья про HTB(здесь). Различные примеры из Интернет тоже порой вводили в ступор, так как в них часто не было описания конкретных опций или смысла их применения. Поэтому я и попытался собрать полученные мною знания в одну статью, а главное описать все на доступном для новичков уровне.
Читать дальше →

Реалистичные тени при помощи CSS3 без использования изображений

Reading time7 min
Views143K
Привет, Хабр!

Хочу поделиться замечательным мастер-классом по созданию реалистичных теней для блоков на чистом CSS, найденном на просторах рунета по адресу http://mainview.ru/css/realistichnye-teni-pri-pomoshhi-css3-bez-ispolzovaniya-izobrazhenij. Естественно, для того, чтобы примеры работали как надо, необходим браузер с поддержкой CSS3.

image

Читать дальше →

Мандатная модель ОС МСВС 3.0

Reading time3 min
Views18K
Система мандатного управления доступом доставляет много проблем начинающим разработчикам под МСВС. Типичная проблема — невозможность работы с файлами, доступ к которым закрыт мандатными метками. Обычно эту проблему объясняют глючностью МСВС. Хотя дело вовсе не в МСВС. Всё дело в неправильном применении мандатных меток. А неправильное использование меток связано с непониманием основных принципов мандатного управления доступом. В этой статье я изложу основные принципы мандатной модели — основы безопасного доступа к файлам в этой операционной системе. Я специально не стал описывать практическую сторону вопроса, чтобы сфокусировать внимание именно на основах модели.
Читать дальше →

TornadIO2 = Tornado + Socket.IO

Reading time5 min
Views14K

Что такое Socket.IO?


Это библиотека предназначенная для организации постоянного соединения между сервером и браузером.

Главное преимущество библиотеки: она автоматически подстраивается под возможности браузера и использует наиболее эффективный транспортный протокол из поддерживаемых.

Браузер умеет веб сокеты? Отлично, будем использовать их. Браузер умеет AJAX? Будем использовать long polling. Это древний Internet Explorer? Будем использовать html file object. Ну и так далее.

О socket.io уже писали на Хабре. «Родной» сервер Socket.IO написан на node.js.
Читать дальше →

Information

Rating
Does not participate
Location
Бангкок, Таиланд, Таиланд
Registered
Activity