'

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

Понравилась презентация – покажи это...





Слайд 0

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


Слайд 1

DDOS


Слайд 2

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


Слайд 3

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


Слайд 4

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


Слайд 5

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


Слайд 6

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


Слайд 7

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


Слайд 8

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


Слайд 9

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


Слайд 10

База а-ля Memcache Хранит все в памяти Сохраняет периодически или по запросу GET SET EXPIRE Умеет структуры данных HASH, (Sorted) SET, LIST Redis - это БЫСТРО!


Слайд 11

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


Слайд 12

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


Слайд 13

Вопросы? ==cut


Слайд 14

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


Слайд 15

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


Слайд 16

Персонализация влияет комплексно. Геотаргетинг телефоны, цены, информация... Каждый геотаргетинг - своя страница в кеше Кэш + персонализация mod_geoip Russia Japan USA посетитель 1 2 3 Варианты страницы


Слайд 17

Персонализация влияет точечно. Блочные сервисы Последние просмотры Реклама ... Кэш + персонализация <html> <div class="sidebar"> … <esi src="/lastread.php"/> … </div> </html> Подзапрос


Слайд 18

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


Слайд 19

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


Слайд 20

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


Слайд 21

Рецепты Ограничить время жизни кеша Убивать все Весь тэг article при изменении дерева статей Или все URL вида article/* Кэш + сложные зависимости … или когда добавить таги лень Главное –HIT/MISS


Слайд 22

Кешируем и для зарегистрированных 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/ Дополнительно


Слайд 23

==cut


Слайд 24

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


Слайд 25

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


Слайд 26

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


Слайд 27

Персонализирующий скрипт <html> <head> <script src="http://master.com/auth.php"> ... </head> ... Анонимная страница a.com http://master.com/auth.php Загрузить/создать сессию По кукам master.com Если зарегистрированный: Поставить куку на b.com =>reload Если аноним: Персонализация при помощи JS Cookie анонима стоят только на master.com


Слайд 28

Производительность a.com/… SID существует, авторизован и валиден? ... <script src="http://master.com/auth.php"> ... Страница из кэша Нет Да движок C + +


Слайд 29

3rd party cookie! Политика безопасности P3P Safari запрещает по умолчанию Другие браузеры можно настроить Демо Как обойти? Pitfall


Слайд 30

Динамическая форма с любой страницы Кросс-доменная коммуникация <script> - логин-пароль нельзя передавать GET window.name + вспомогательный iframe Действия для авторизованного посетителя Auth.decorate(callback) Автопривязка после регистрации Комментарии Все вместе См. демо http://master.com Удобная авторизация


Слайд 31

Время жизни однократных посетителей Если в течение минуты не было захода – удалять Защищает от ботов без кук Против ботов с поддержкой Cookie Как правило, таких ботов меньше Не хранить анонимов с IE6 Определение по browser features –> запись в Cookie Персонализация не везде Captcha… Дополнительная защита


×

HTML:





Ссылка: