Обновить

Разработка

Сначала показывать
Период
Уровень сложности

Защищаем сайт от атак на примере ХабраХабра

Время на прочтение5 мин
Охват и читатели17K


Рано утром Хабр «выкатил» своё новое обновление, и я с чистой совестью достаю эту статью из черновиков.
Вчера у меня случился epic fail и этот топик частично, включая строчку об апдейте выше, попал в паблик на пару секунд. За эти секунды топик успело плюсануть несколько человек.
Ещё раз, теперь публично, прошу прощения у администрации!
Совет остальным — НИКОГДА не храните в черновиках информацию вроде этой.


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

В настоящей статье я хочу ещё раз поведать разработчикам о том, как ломают сайты, а чтобы вам не было скучно, я попутно буду ломать Хабр и подробно описывать, как я это делал. Мы рассмотрим такие интересные штучки, как «Активная XSS в профиле», «Бесконечное обнуление кармы», «Публикация топиков со значком 'Из песочницы'», «CSRF через Flash и дыру в Internet Explorer 6» и многое другое.

Все уязвимости уже исправлены. Ну или почти все. Поэтому, если вы найдёте очередную дыру, то пишите на support@habrahabr.ru — миф о том, что эту почту никто не читает всего лишь миф.
Читать дальше →

Что должен знать о времени каждый программист

Время на прочтение3 мин
Охват и читатели105K

Некоторые замечания о времени

  • UTC: время на нулевом меридиане называется Всемирное координированное время, Universal Coordinated Time. Несовпадение акронима было вызвано необходимостью универсальности его для всех языков.
  • GMT: ранее вместо UTC использовалось среднее время по Гринвичу (Greenwich Mean Time, GMT), так как нулевой меридиан был выбран так, чтобы проходить через Гринвичскую королевскую обсерваторию.
  • Прочие часовые пояса могут быть записаны как смещение от UTC. Например, Австралийское восточное стандартное время (EST) записывается как UTC+1000, то есть время 10:00 по UTC есть 20:00 по EST того же дня.
Читать дальше →

Сложнейшая проблема компьютерных наук: центрирование

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели44K

Заявляю: «Мы, как цивилизация, разучились использовать центрирование». Ну то есть мы, конечно, знаем, как это делать — очень просто:

display: flex;
justify-content: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Не спрашивайте, почему вам нужно запомнить четыре слова вместо просто горизонтальное/вертикальное; всё равно лучше, чем было до этого.

Ещё можно использовать сетку:

display: grid;
justify-items: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Также не спрашивайте, почему выражение justify-content стало justify-items.
Читать дальше →

7-zip — нет времени спешить

Время на прочтение12 мин
Охват и читатели50K

Данной заметки не должно было быть, но мы живем не в идеальном мире. Есть много пользователей, что предпочли стандартному проводнику Windows альтернативу и наверное еще больше пользователей архиватора 7-zip. Имеет смысл поделиться с ними, подумал я и вот мы здесь.

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

Что делает обычный эникейщик в подобной ситуации? Конечно же берет в руки первый подвернувшийся профайлер.

Читать далее

Реверс-инжиниринг полёта Бэтмена

Время на прочтение8 мин
Охват и читатели95K


Этим летом вышла очередная игра из серии Batman Arkham, в ПК версии которой оказалось столько багов, что было принято беспрецедентное решение снять её с продаж. Я решил посмотреть, что же там такого ужасного.

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

На скриншоте изображён этот момент: вместо того, чтобы лететь вперёд, Бэтмен повернулся вниз головой, демонстрируя полнейшее пренебрежение к происходящему. Аналогичный баг был в предыдущей игре (Arkham Origins), и он до сих пор не исправлен. Видимо тот же самый кривой код был перенесён в новую игру. Попробуем найти, какие ошибки делают программисты в играх такого уровня, и исправить их.
Читать дальше →

Ловцы молний. Необычные эксперименты с грозой

Время на прочтение7 мин
Охват и читатели170K
Добрый день, уважаемые читатели Хабра.

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

image

Меня всегда вдохновляла красота и мощь молний. Сила тока в разряде молнии достигает 10-300 тысяч ампер, а напряжение — от десятков миллионов до миллиарда вольт. Мощность разряда — от 1 до 1000 ГВт. Вот было бы хорошо «приручить» эту энергию!

Хочу предупредить, не повторяй это дома! Я соблюдаю особую осторожность и хорошо знаю природу электрических явлений. Помни, поражение молнией смертельно.
Читать дальше →

Зачем МГТС двигает PON

Время на прочтение5 мин
Охват и читатели112K
Здравствуйте, я инженер МГТС и меня очень заинтересовал пост об уязвимостях в Wi-Fi роутерах, используемых для абонентов по технологии PON. Поскольку новые пользователи не могут писать комментарии, пишу сразу пост со своими соображениями по этой теме.

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

Поэтому хочется коснуться немного другой темы. Зачем вообще МГТСу нужен этот PON со всей его дороговизной и ненадёжностью? Почему такая истерия с этим всем? Да, прогрессивная технология, да, хорошая скорость и конкурентные преимущества. Но, по моему мнению, корень немного в другом. Он имеет название и юридическое лицо — ЗАО «МГТС-недвижимость».
Читать дальше →

Сражаясь с анонимностью

Время на прочтение7 мин
Охват и читатели156K
Тема анонимности в Интернете является сейчас достаточно модной и интересной, и особенно теперь, когда новостные порталы пугают наc всякими там PRISM, правительственными инициативами и прочим. Большинство людей озабочены тем, как сохранить тайну своей личности в сети и поэтому все темы так или иначе посвящены ЗАЩИТЕ. Но иногда, раскрытие анонимности это не такое уж и плохое дело. Да-да, эта заметка — мой опыт борьбы с анонимностью своими силами, без помощи спец-служб…

image

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

Пять научных открытий, сделанных с помощью Google Earth

Время на прочтение3 мин
Охват и читатели49K

Благодаря спутниковым фотографиям всей поверхности Земли учёные получили возможность исследовать территории, куда никому и в голову не приходило посылать научные экспедиции, а также под новым углом взглянуть на давно изученные места. За последние несколько лет благодаря программе Google Earth сделан целый ряд важных открытий. Иногда эти открытия делаются совершенно случайными людьми.


Остатки древнеримской виллы, Италия, 2005

Одно из самых первых археологических открытий, сделанных в Google Earth, состоялось в 2005 году. По иронии, автор открытия, местный житель Лука Мори (Luca Mori) запустил программу просто чтобы обследовать местность возле своей родной Пармы. Совершенно неожиданно он заметил какой-то странный овальный артефакт в полях неподалёку от города.



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

Боремся с Radarix.com. Часть первая.

Время на прочтение1 мин
Охват и читатели5.9K
Я — человек, (как бы странно это не звучало) как и вы все.
Я — оставляю свою информацию в Интернете, и не хочу, что бы обо мне знали, больше чем я могу написать про себя в том же Facebooke.

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

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

Делаем Liquid Resize своими руками

Время на прочтение12 мин
Охват и читатели16K
Вы наверное уже слышали о технологии масштабирования Liquid Resize, которая учитывает содержимое изображения. Если вам интересно как оно все работает и как можно реализовать все это самому, то читайте далее (осторожно, много рисунков).


(НЛО прилетело и растянуло этот рисунок здесь)
Читать дальше →

Как я стал core-разработчиком Python в 19 лет

Время на прочтение5 мин
Охват и читатели25K

Как я стал core-разработчиком CPython в 19 лет: История усилий и достижений

В этой статье я расскажу, сколько усилий потребовалось, чтобы стать частью команды разработчиков CPython и какие возможности это открыло для меня.

Читать далее

Калькулятор? Да его напишет кто угодно

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели34K

[Прим. пер.: на Хабре уже был перевод этой статьи, но незавершённый примерно на четверть.]

Неправда.

Калькулятор должен показывать результат введённого математического выражения. А это намно-о-ого сложнее, чем кажется.

В этом посте я расскажу величайшую историю о разработке приложения-калькулятора.

На изображении выше показан калькулятор из iOS.

Заметили что-нибудь?

Он посчитал неправильно.

(10100) + 1 − (10100) равно 1, а не 0.

Android считает правильно. А причина, по которой он это делает, абсолютно безумна.

Читать далее

Ближайшие события

Анализ сишного Hello World

Время на прочтение7 мин
Охват и читатели72K
Hello World — одна из первых программ, которые мы пишем на любом языке программирования.

Для C hello world выглядит просто и коротко:

#include <stdio.h>

void main() {
  printf("Hello World!\n");
}

Поскольку программа такая короткая, должно быть элементарно объяснить, что происходит «под капотом».
Читать дальше →

Завтра мы начнём вас убивать, или Зачем нужны инженеры

Время на прочтение12 мин
Охват и читатели138K
Привет, Хабр. Под этим пафосным заголовком я бы хотел поговорить о том, что такое «инженерная наука», в чём состоит главная обязанность инженера и что бывает, если он с ней не справляется — мне кажется, в последнее время эта тема становится всё более актуальной, при этом её публичного обсуждения я не вижу.

Сподвигла меня на это разразившаяся (при моём активном участии) в минувшие выходные история с «нейроинтерфейсами» компании Bitronics Lab — детскими учебными наборами для снятия ЭЭГ и мышечной активности, которые при ближайшем рассмотрении оказались попросту небезопасны в использовании из-за несоблюдения их производителем базовых требований к электробезопасности медицинского оборудования.

История это очень показательна в том, что она демонстрирует, как по мере роста сложности система, составленная из кажущихся её авторам безопасными компонентов, становится опасной — причём на примере системы простой, бытовой и интуитивно понятной, а не атомного реактора или реактивного лайнера, которые любят брать в качестве примеров авторы книг вроде моей любимой "Inviting Disaster".

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

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



Казалось бы, что может пойти не так?
Читать дальше →

Электромобиль Tesla S сломал оборудование для проведения краш-тестов

Время на прочтение2 мин
Охват и читатели296K

Национальная администрация безопасности дорожного движения США (NHTSA) присудила наивысший рейтинг 5 звёзд электромобилю Model S производства компании Tesla Motors во всех категориях тестирования. Эта модель показала абсолютный лучший результат за всё время проведения таких тестов, хотя их обязательно проходит каждая модель, предлагаемая для продажи на территории США.


Хотя Tesla Model S выпускается в кузове седан, но её оценка выше, чем у всех внедорожников и микроавтобусов. В подробных результатах тестирования, которые высылают производителям, указан итоговый результат 5,4 балла.

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

Skype — Да, мы читаем все, что Вы пишете

Время на прочтение4 мин
Охват и читатели203K
Вольный перевод статьи на тему приватности переписки в Skype.

Все, кто использует Skype, обязан согласится с пунктом, что компания может читать все, что там пишут (смотри Положение о конфиденциальности в Skype). Компания Heis, совместно с немецкими коллегами, выяснила путем простейшего эксперимента, что Microsoft активно использует эту возможность, но очень странным образом.

Практически сразу после отправки сообщения в Skype, в котором содержалась ссылка на некий https ресурс, данный ресурс был посещен с IP, принадлежащего Microsoft HQ в Редмонде, США.

UPD: Статья дополнена предположениями о возможной причине произошедшего. Опубликовано 17 Мая 2013 на The-H-Security.
Читать дальше →

Так что же случилось со Сбербанком?

Время на прочтение4 мин
Охват и читатели27K
Вместо эпиграфа:
Пускай слыву я старовером,
Мне всё равно, я даже рад.
Пишу я Гоблина размером,
Пою, друзья, на старый лад
(почти М. Ю. Лермонтов)

Итак,

— Что же произошло с процессингом Сбербанка?
— Произошла ошибка СУБД Oracle, приведшая к остановке экземпляра.

— Что за странные вещи написал вице-президент банка? Какое ещё удаление событий из журналов?
— Обратите внимание, комментарий написан далеко заполночь, и не на специализированном ресурсе типа sql.ru, и не администратором Oracle, а вице-президентом. Странно в такой ситуации ожидать глубокого технического описания. Тем не менее, описание достаточно точное. Чуть ниже будут технические подробности — попробуйте сформулировать «для простого народа» понятнее, чем это получилось у Орловского.

— Ну, давай уже технические подробности!
Читать дальше →

CSS кнопки с помощью псевдо-элементов

Время на прочтение5 мин
Охват и читатели48K


Здравствуйте, друзья. За последний месяц я экспериментировал с псевдо-элементами, особенно, с их использованием в создании кнопок. Таким образом, удалось создать крутые эффекты, которые раньше можно было сделать только со спрайтами.

В этом уроке я покажу как создать кнопку с изюминкой, используя только якорный тег и мощь CSS.

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

JavaScript F.A.Q: Часть 1

Время на прочтение15 мин
Охват и читатели75K
image

Несколько дней назад мы с TheShock создали топик в котором собирали ваши вопросы, касательно JavaScript (архитектура, фрэймворки, проблемы). Настало время ответить на них. Мы получили очень много вопросов, как в комментариях так и по email. Эта первая часть ответов — те вопросы, которые достались мне.
Читать дальше →