Удобная кросс-доменная авторизация и персонализация для DDOS-устойчивого сайта

Содержание

Слайд 3

Приходит 10.000 HTTP-запросов/сек с разных IP…
Что делать?
Идеи?

DDOS-устойчивый сайт

Как защититься?

ИЛИ

?

Приходит 10.000 HTTP-запросов/сек с разных IP… Что делать? Идеи? DDOS-устойчивый сайт Как защититься? ИЛИ ?

Слайд 4

Вычислять и банить IP ботов
Способы есть, но это сложно:
Боты маскируются.
Оператор – не

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

DDOS-устойчивый сайт

Варианты защиты

Слайд 5

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

DDOS-устойчивый

Настоящий Хайлоад Большие расходы: железо, программирование… DDOS закончится и все это будет
сайт

Варианты защиты

Слайд 6

Не пускать анонимов в движок
Обслуживать их из быстрого кеша
Медленный сервис? Captcha!

DDOS-устойчивый сайт

Варианты

Не пускать анонимов в движок Обслуживать их из быстрого кеша Медленный сервис?
защиты

Слайд 7

Что это означает для движка?

Типичный проект

посетитель

Как внедрить кеширование для анонимов ?

Что это означает для движка? Типичный проект посетитель Как внедрить кеширование для анонимов ?

Слайд 8

Первый подход. Классика жанра.

Движок с кешированием

посетитель

FastCGI

запрос

страница

Первый подход. Классика жанра. Движок с кешированием посетитель FastCGI запрос страница

Слайд 9

Короче

Структура
Много компонент
Много лишней работы по копированию данных
Производительность
Средняя, а нужна максимальная.

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

Слайд 10

Версия 2.0 "Кэш – наше всё"

посетитель

авторизация

HTTP-КЭШ

FastCGI


P.S.
Также пробовали подписанные куки разные для анонима

Версия 2.0 "Кэш – наше всё" посетитель авторизация HTTP-КЭШ FastCGI … P.S.
и зарегистрированного COOKIE .= md5(secret_anon,cookie).substr(0,4) COOKIE .= md5(secret_regged,cookie).substr(0,4)

Слайд 11

База а-ля Memcache
Хранит все в памяти
Сохраняет периодически или по запросу
GET SET EXPIRE

База а-ля Memcache Хранит все в памяти Сохраняет периодически или по запросу

Умеет структуры данных
HASH, (Sorted) SET, LIST

Redis

- это БЫСТРО!

Слайд 12

Кеширующий прокси / сервер / балансер /…
Хуки на всех стадиях обработки запроса
http://www.varnish-cache.org/trac/wiki/VarnishFeatures

Varnish

Кеширующий прокси / сервер / балансер /… Хуки на всех стадиях обработки запроса http://www.varnish-cache.org/trac/wiki/VarnishFeatures Varnish

Слайд 13

Ответ генирируют
скрипты

Что получилось

1

2

Авторизован?

Да

Нет

3

Ответ из кеша

C{ … }C

посетитель

Ответ генирируют скрипты Что получилось 1 2 Авторизован? Да Нет 3 Ответ

Слайд 14

Вопросы?

==cut

Вопросы? ==cut

Слайд 15

Персонализируемый сайт

Просмотренные товары

Геотаргетинг

Персонализация «рулит»
Она нужна всем, включая анонимных посетителей
=> Авторизуем всех!

То, что

Персонализируемый сайт Просмотренные товары Геотаргетинг Персонализация «рулит» Она нужна всем, включая анонимных
надо!!!

Онлайн-сервисы

Слайд 16

Кэш
страница генерируется 1 раз
Персонализация
страница подстраивается под посетителя
Идеи?

Кэш VS персонализация

Как объединить?

Кэш страница генерируется 1 раз Персонализация страница подстраивается под посетителя Идеи? Кэш VS персонализация Как объединить?

Слайд 17

Персонализация влияет комплексно.
Геотаргетинг
телефоны, цены, информация...
Каждый геотаргетинг - своя страница в кеше

Кэш +

Персонализация влияет комплексно. Геотаргетинг телефоны, цены, информация... Каждый геотаргетинг - своя страница
персонализация

mod_geoip

Russia

Japan

USA

посетитель

1

2

3

Варианты страницы

Слайд 18

Персонализация влияет точечно.
Блочные сервисы
Последние просмотры
Реклама
...

Кэш + персонализация


Персонализация влияет точечно. Блочные сервисы Последние просмотры Реклама ... Кэш + персонализация … … Подзапрос


Подзапрос

Слайд 19

К записи в кэше прикреплены тэги.
Тэги задаются при генерации страницы.
По тэгам можно

К записи в кэше прикреплены тэги. Тэги задаются при генерации страницы. По
удалять.

Очистка кеша при изменениях

Слайд 20

Пример:
Страница фото
http://www.photosight.ru/photos/3933415/
Тэг: foto_123
Фото обновляется
При изменении файла или описания фото
При изменении кол-ва комментариев

Очистка

Пример: Страница фото http://www.photosight.ru/photos/3933415/ Тэг: foto_123 Фото обновляется При изменении файла или
кеша при изменениях

Слайд 21

Пример:
Страница галереи / тэга
http://www.photosight.ru/photos/category/7/
Тэги: foto_1, foto_2, …, foto_20

Очистка кеша при изменениях

Пример: Страница галереи / тэга http://www.photosight.ru/photos/category/7/ Тэги: foto_1, foto_2, …, foto_20 Очистка кеша при изменениях

Слайд 22

Рецепты
Ограничить время жизни кеша
Убивать все
Весь тэг article при изменении дерева статей
Или все

Рецепты Ограничить время жизни кеша Убивать все Весь тэг article при изменении
URL вида article/*

Кэш + сложные зависимости … или когда добавить таги лень

Главное –HIT/MISS

Слайд 23

Кешируем и для зарегистрированных
SID в Hash
Поддержка 304 в браузере
Полезные ссылки
http://www.varnish-cache.org/docs/2.1/
http://www.slideshare.net/tgr1/varnish-plnog-4
http://www.slideshare.net/crucially/varnish-velocity-ignite
http://kristianlyng.../smart-bans-with-varnish/

Дополнительно

Кешируем и для зарегистрированных SID в Hash Поддержка 304 в браузере Полезные

Слайд 25

Один сайт – много доменов 2 уровня
http://site.ru
http://notebook-site.ru
http://mouse-site.ru

Нахрена?
SEO !

Мульти-доменный сайт

Один сайт – много доменов 2 уровня http://site.ru http://notebook-site.ru http://mouse-site.ru … Нахрена? SEO ! Мульти-доменный сайт

Слайд 26

Вошел на один сайт
http://site.ru

Кросс-доменная авторизация

… Авторизован на всех
http://notebook-site.ru
http://mouse-site.ru

Идеи?

Вошел на один сайт http://site.ru Кросс-доменная авторизация … Авторизован на всех http://notebook-site.ru http://mouse-site.ru Идеи?

Слайд 27

Вход, выход, авторизация – на мастере
master.com
Задача - синхронизировать Cookie между доменами
Как?
См. следующий

Вход, выход, авторизация – на мастере master.com Задача - синхронизировать Cookie между
слайд

Кросс-доменная авторизация

Слайд 28

Персонализирующий скрипт