Pull to refresh
95
0
Олег Кислицын @olegafx

User

Send message

Что под капотом у vk.com

Reading time5 min
Views58K
Данный пост — небольшой отчет о процессе реверсивного проектирования и анализа работы самой популярной соц. сети в СНГ — vk.com. В основном анализ проводился со стороны безопасности (хотя сама соц. сеть весьма привлекательна как high-load проект, безусловно). Для себя вынес некоторые интересные решения и просто получил удовольствие. Пост получился, возможно, немного сумбурный, так углублялся просто в интересные мне моменты.

Содержание


Обзор

Архитектура

  • php 5.2/5.3
  • Периоды нагрузки (отключения автоподгрузки ленты)
  • Врапперы в сообщениях
  • Разный код для мобильной и полной версий

Security

  • Фичи
    • Авторизация
    • Anti-CSRF токены
    • Запрет iframe
    • Отключенный POST на контент-серверах
  • Фиче-баги
    • Узнать возраст через поиск
  • Баги
    • XSS
    • Загрузка документов без имени
    • Подгрузка по ajax фото из закрытых альбомов (?)
    • Не везде anti csrf

Разное

Читать дальше →
Total votes 117: ↑106 and ↓11+95
Comments54

27+ ресурсов для онлайн-обучения

Reading time5 min
Views970K

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

Статья содержит перечень ресурсов для онлайн-обучения, представляющих интерес преимущественно для программистов.

Читать дальше →
Total votes 174: ↑163 and ↓11+152
Comments68

Загрузка файлов в Yii

Reading time10 min
Views70K
Написав ряд проектов на Yii, задумался об удобном механизме работы с загруженными файлами. Yii предлагает набор инструментов для этих целей, но единого механизма нет. В этой статье хочу предложить идею централизованной обработки загруженных файлов в Yii.
Читать дальше →
Total votes 36: ↑28 and ↓8+20
Comments15

Подборка инструментов для эффективной frontend разработки

Reading time3 min
Views101K
В эту прекрасную пятницу осмелюсь предложить хабрасообществую небольшую подборку приложений, предназначенных для увеличения продуктивности во время работы с фронтэндом. Если ваш любимый апп здесь не представлен — добро пожаловать в комментарии!

Form Builder

image

Этот прекрасный генератор форм поможет вам в создании красивейших CSS логин-боксов и прочих input вещей, при минимальных временных затратах. Помимо форм на сайте этого проекта можно создавать и другие не менее красивые CSS элементы, в том числе кнопки и ленты.
еще 24 ссылки
Total votes 204: ↑197 and ↓7+190
Comments46

Безопасность случайных чисел в Python

Reading time5 min
Views27K
Эта статья – вторая в ряде публикаций, посвященных уязвимостям генераторов псевдослучайных чисел (ГПСЧ).

В последнее время появился целый ряд публикаций, описывающих уязвимости ГПСЧ, начиная от самых основ ([1]) и заканчивая непосредственно уязвимостями в различных языках программирования и реализованных на их основе CMS и другого ПО ([2],[3],[4]).

Эти публикации популярны по той причине, что ГПСЧ – основа многих аспектов безопасности веб-приложений. Псевдослучайные числа/последовательности символов используются для обеспечения безопасности веб-приложений в:

  • генерации различных токенов (CSRF, токены сброса пароля и т.д.);
  • генерации случайных паролей;
  • генерации текста в CAPTCHA;
  • генерации идентификаторов сессий.

В прошлой статье мы, опираясь на исследования George Argyros и Aggelos Kiayias ([3]) научились предугадывать случайные числа в PHP на основе PHPSESSID и уменьшать различными способами энтропию псевдослучайных чисел.

Сейчас мы рассмотрим ГПСЧ в веб-приложениях, разработанных на языке Python.
Читать дальше →
Total votes 64: ↑57 and ↓7+50
Comments11

Попытка номер раз создать почти идеальный htaccess

Reading time14 min
Views249K
    - Google выше ранжирует сайты, которые загружаются быстрее.
    - Если на eBay или Amazone увеличить время загрузки страниц на 9% они теряют 1% прибыли.
    - Сделать свой сайт быстрее, чтобы сэкономить на клиентском трафике и на числе обращений к серверу.


.htaccess — наш герой


Профессионалы знают, что такое htaccess.
Тем кто собираются уйти с народ.ру на php-хостинг только предстоит узнать, что это такое.
Те кто только что установил свои первые jooml'у или wordpress срочно должны узнать о нашем герое — htaccess

Зачем нам .htaccess ?


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

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

А ещё htaccess может решить некоторые вопросы с безопасностью вашего сайта.

А ещё…

Полезные советы по htaccess с разжевыванием для новичков
Total votes 85: ↑70 and ↓15+55
Comments77

Видеозаписи докладов с High Performance Conference

Reading time3 min
Views13K
Дорогие хабрачитатели, мы готовы представить вам видеозаписи всех докладов с конференции по высоким нагрузкам HPC, которая состоялась 9 августа в Москве.



Прямо сегодня (или в любое удобное для вас время) в программе:
Сергей Аверин XEK, Badoo (участвовал в создании таких проектов как Хабр, dirty, leprosorium, autokadabra, dribbler, trendclub и др.);
Юрий Насретдинов, Badoo;
Андрей Сумин AndrewSumin, Mail.ru Group (ранее Яндекс, HeadHunter);
Константин Осипов, Mail.Ru Group ( ранее Oracle, Sun, MySQL, Ringrows, Spylog, Interpro);
Даниил Павлючков, ITmozg.ru.

Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments3

Система уведомлений о событиях на сайте (на примере аудиоплеера ВКонтакте)

Reading time2 min
Views37K
Приветствую.

Думаю, многие, кто имеет аккаунт ВКонтакте и слушает там музыку, замечали, что если на одной вкладке включить трек, а затем уже на другой включить второй, первый трек уйдет в паузу. Примерно то же самое происходит с различными уведомлениями (новое сообщение, ответ на комментарий/запись и т.д.) — отображается оно только в активной вкладке. Кому интересно как это работет и каким образом сделать подобное у себя на сайте, милости просим за хабракат.
Читать дальше →
Total votes 94: ↑90 and ↓4+86
Comments38

Новое для веб-дизайнера за сентябрь 2012

Reading time1 min
Views68K
Сделал небольшую подборку новых полезных материалов для веб-дизайнеров за сентябрь 2012. Надеюсь, будет полезна хабровчанам.

Полезные сервисы


Easel.io — отличный сервис для прототипирования прямо в браузере.

Читать дальше →
Total votes 136: ↑132 and ↓4+128
Comments21

Ещё семь фич HTML5, о которых вы могли не знать

Reading time3 min
Views89K
Доброго времени суток!

Все мы достаточно наслышаны об HTML5 и его возможностях. Например, элементы audio и video, которые у всех на слуху. Но несмотря на это, существует парочка тегов, о которых знают далеко не все, и о которых не знал я до недавнего времени. Итак, вот чем я хочу с вами поделиться.
Читать дальше →
Total votes 201: ↑170 and ↓31+139
Comments96

NoSQL базы данных: понимаем суть

Reading time9 min
Views584K
В последнее время термин “NoSQL” стал очень модным и популярным, активно развиваются и продвигаются всевозможные программные решения под этой вывеской. Синонимом NoSQL стали огромные объемы данных, линейная масштабируемость, кластеры, отказоустойчивость, нереляционность. Однако, мало у кого есть четкое понимание, что же такое NoSQL хранилища, как появился этот термин и какими общими характеристиками они обладают. Попробуем устранить этот пробел.


Читать дальше →
Total votes 137: ↑133 and ↓4+129
Comments75

Сниппеты для Twitter Bootstrap

Reading time1 min
Views97K
Фреймворк Twitter Bootstrap уже давно стал одним из самых любимых средств ленивых сторонников быстрого прототипирования и разработки интерфейсов, а где популярность там много разных сторонних интересных штук.
На этот раз я случайно попал на пополняющуюся коллекцию сниппетов.
Думаю многим пригодится, сейчас там набор небольшой (23 штуки), но уже достаточно полезный чтобы поделиться.
Кликабельные картинки:

Интерфейс аля gmail



Читать дальше →
Total votes 125: ↑117 and ↓8+109
Comments23

Полезные ссылки для PHP разработчика с MageConf 2012

Reading time2 min
Views28K
MageConf 201216.09.2012 в Киеве в три потока прошла конференция MageConf 2012. Два потока были посвящены системе Magento, третий – PHP. Посетив все 6 докладов на потоке PHP, хотел бы кратко изложить основную информацию, донесенную спикерами. В итоге пост получился набором полезных ссылок по разработке на PHP.

Докладчики особое внимание уделяли утилитам и софту, которыми они активно пользуются в Magento. Один из спикеров ранее был разработчиком портала i.ua.
Читать дальше →
Total votes 61: ↑50 and ↓11+39
Comments23

Подробно о генераторах случайных и псевдослучайных чисел

Reading time11 min
Views322K
На Хабре и в сети часто начали появляться статьи, посвященные уязвимостям генераторов случайных чисел. Данная тема крайне обширна и является одной из основных в криптографии. Под катом находится описание случайных чисел от A до Z. Статья является результатом свободного перевода цикла статей из одного западного блога и личных дополнений автора. Основная цель — получить feedback и поделиться знаниями.
image
Читать дальше →
Total votes 75: ↑71 and ↓4+67
Comments22

JsTree — деревья это так просто

Reading time2 min
Views79K
Привет!

О плагине JsTree на хабре упоминалось лишь в далеком 2009 году. С тех времен все довольно сильно поменялось. Плагин активно развивается. Страница проекта на гитхабе.

Учитывая специфику проекта, над которым сейчас работаю(справочная система), этот плагин оказался просто незаменимым, и я использую 90% его функционала с превеликим удовольствием. И я до сих пор не видел такой же мощной альтернативы.



Если вам нужно отрисовать в брауезере просто дерево, то, конечно можно использовать и другие плагины, или вовсе написать это самому и лаконично, но для более широкого функционала — JsTree — просто отличный вариант.

Что мы имеем?


  • Построение дерева на основе html разметки, json и xml формата
  • Drag & drop с тонкой настройкой возможности перемещения нодов по дереву
  • Динамическое добавление/удаление/изменение нодов
  • Возможность построения нескольких деревьев на одной странице и манипуляция нодами между этими деревьями
  • Возможность присвоения нодам произвольных типов (file, folder, drive, да какой угодно), и указать отдельное поведения для каждого
  • Поддержка тем оформления (на скрине в начале статьи пример того, как это реализовал я)
  • Управление с клавиатуры
  • Использование нативных и кастомных чекбоксов
  • AJAX подгрузка нодов, запоминание состояния дерева
  • Плагин красиво и читабельно написан, позволяет писать дополнительные плагины к нему и без проблем кастомизировать.
  • Удобная система байндингов для обработки событий
  • Мультиязычность
  • Управление анимацией раскрытия
  • Поиск по дереву
  • Кастомное контекстное меню
  • Поддержка браузеров: IE 6+, Firefox 2+, Safari 3+, Opera 9+, Chrome
  • Мини-фича, которая меня особенно порадовала — плагин wholerow — выделения нода во всю ширину. А-ля mac style
Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments47

Шпаргалка по MV-паттернам для проектирования веб-приложений

Reading time7 min
Views69K
mv-patterns
В Интернет можно найти множество различающихся реализаций и схем, уже набившего оскомину, паттерна MVC. В разных книгах я также встречал разные схемы. Это порождает некоторую путаницу и комментарии к моей предыдущей статье: "Реализация MVC паттерна на примере создания сайта-визитки на PHP" тому подтверждение. В поисках истины, я попытался расставить все по местам… перечитал некоторую литературу и статьи по паттернам проектирования и написал дополнение к упомянутой статье. Но решил запостить это дополнение, как отдельный топик в надежде на фидбэк. Под катом вы найдете несколько часто встречающихся схем MVC и MVP с описанием жизненного цикла приложения, а также описание менее популярных паттернов HMVC и MVVM. Разумеется, некоторые из перечисленных паттернов применимы не только к веб-приложениям, но в статье они рассматриваются именно в этом контексте.
Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments22

Как обойтись без капчи?

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

Читать дальше →
Total votes 159: ↑137 and ↓22+115
Comments187

JSON-RPC 2.0 и PHP

Reading time8 min
Views62K
Если вы разработчик, и у вас есть проект на PHP, и ему наконец-то понадобилось реализовать собственное API — эта статья определенно для вас ;).

JSON-RPC v1.0 появился в 2005 году, спустя 5 лет появилась и вторая версия. В век javascript'а и мобильных приложений многие разработчики до сих пор используют свои собственные велосипеды вместо готового простого стандарта.
Попробуем разобраться в вопросе
Total votes 51: ↑48 and ↓3+45
Comments26

Реализация MVC паттерна на примере создания сайта-визитки на PHP

Reading time16 min
Views726K
mvc

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

Читать дальше →
Total votes 80: ↑46 and ↓34+12
Comments175

Дайджест интересных новостей и материалов из мира айти за последнюю неделю №20 (25 — 31 августа 2012)

Reading time5 min
Views22K
Предлагаем вашему вниманию очередную подборку с ссылками на новости, интересные материалы и полезные ресурсы.

Читать дальше →
Total votes 45: ↑40 and ↓5+35
Comments12

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity