SlideShare a Scribd company logo
Удобная кросс-доменная авторизация и персонализация для DDOS-устойчивого сайтаRedis + Varnish + Javascript
DDOS
DDOS-устойчивый сайтКак защититься?Приходит 10.000 HTTP-запросов/сек с разных IP…Что делать?Идеи?ИЛИ?
DDOS-устойчивый сайтВарианты защитыВычислять и банить IP ботовСпособы есть, но это сложно:Боты маскируются.Оператор – не дурак.Ботнет большой.
DDOS-устойчивый сайтВарианты защитыНастоящий ХайлоадБольшие расходы: железо, программирование…DDOS закончится и все это будет не надо.
DDOS-устойчивый сайтВарианты защитыНе пускать анонимов в движокОбслуживать их из быстрого кешаМедленный сервис? Captcha!
Что это означает для движка?Типичный проектпосетительКак внедрить кеширование для анонимов ?
Первый подход. Классика жанра.Движок с кешированиемзапросFastCGIстраницапосетитель
КорочеСтруктураМного компонентМного лишней работы по копированию данныхПроизводительностьСредняя, а нужна максимальная.
Версия 2.0"Кэш – наше всё"авторизацияFastCGI…HTTP-КЭШпосетительP.S. Также пробовали подписанные куки разные для анонима и зарегистрированногоCOOKIE .= md5(secret_anon,cookie).substr(0,4)COOKIE .= md5(secret_regged,cookie).substr(0,4)
RedisБаза а-ля MemcacheХранит все в памятиСохраняет периодически или по запросуGET SET EXPIRE Умеет структуры данныхHASH, (Sorted) SET, LIST- это БЫСТРО!
VarnishКеширующий прокси / сервер /балансер /…Хуки на всех стадиях обработки запросаhttp://www.varnish-cache.org/trac/wiki/VarnishFeatures
Что получилось2C{ … }C1посетительНет3Авторизован?Ответ из кешаДаОтвет генирируютскрипты
==cut Вопросы?
Персонализируемый сайтГеотаргетингОнлайн-сервисыПросмотренные  товарыТо, что надо!!!Персонализация «рулит»Она нужна всем, включая анонимных посетителей=> Авторизуем всех!
Кэш VSперсонализацияКак объединить?Кэш страница генерируется 1 разПерсонализация  страница подстраивается под посетителяИдеи?
Кэш + персонализацияПерсонализация влияет комплексно.Геотаргетингтелефоны, цены, информация...Каждый геотаргетинг - своя страница в кеше2mod_geoip13посетительВарианты страницыRussiaJapanUSA
Кэш + персонализацияПерсонализация влияет точечно.Блочные сервисыПоследние просмотрыРеклама...<html><divclass="sidebar">   …<esisrc="/lastread.php"/>   …</div></html>Подзапрос
Очистка кеша при измененияхК записи в кэше прикреплены тэги.Тэги задаются при генерации страницы.По тэгам можно удалять.
Очистка кеша при измененияхПример:Страница фотоhttp://www.photosight.ru/photos/3933415/Тэг: foto_123Фото обновляетсяПри изменении файла или описания фотоПри изменении кол-ва  комментариев
Очистка кеша при измененияхПример:Страница галереи / тэгаhttp://www.photosight.ru/photos/category/7/Тэги: foto_1, foto_2, …, foto_20
Кэш + сложные зависимости… или когда добавить таги леньРецептыОграничить время жизни кешаУбивать всеВесь тэг article при изменении дерева статейИли все URL вида article/*Главное –HIT/MISS
ДополнительноКешируем и для зарегистрированныхSID в HashПоддержка 304 в браузереПолезные ссылкиhttp://www.varnish-cache.org/docs/2.1/http://www.slideshare.net/tgr1/varnish-plnog-4http://www.slideshare.net/crucially/varnish-velocity-ignitehttp://kristianlyng.../smart-bans-with-varnish/
==cut
Мульти-доменный сайтОдин сайт – много доменов 2 уровняhttp://site.ruhttp://notebook-site.ruhttp://mouse-site.ru…Нахрена?SEO !
Кросс-доменная авторизацияВошел на один сайтhttp://site.ru… Авторизован на всехhttp://notebook-site.ru
http://mouse-site.ruИдеи?
Кросс-доменная авторизацияВход, выход, авторизация – на мастереmaster.comЗадача - синхронизировать Cookie между доменамиКак?См. следующий слайд
Персонализирующий скриптАнонимная страницаa.comhttp://master.com/auth.phpЗагрузить/создать сессиюПо кукам master.comЕсли зарегистрированный:Поставить куку  на b.com=>reloadЕсли  аноним:Персонализация при помощи JS<html><head><scriptsrc="http://master.com/auth.php">...</head>...Cookie анонима стоят только на master.comПроизводительностьC + Страница из кэшаSID существует, авторизован и валиден?Нетa.com/…Да+движок...<scriptsrc="http://master.com/auth.php">...
Pitfall3rd party cookie!Политика безопасности P3P Safari запрещает по умолчаниюДругие браузеры можно настроитьДемоКак обойти?
Удобная авторизацияДинамическая форма с любой страницыКросс-доменная коммуникация<script>  - логин-пароль нельзя передавать GETwindow.name+ вспомогательный iframeДействия для авторизованного посетителяAuth.decorate(callback) Автопривязка после регистрацииКомментарииВсе вместеСм. демо http://master.com
Дополнительная защитаВремя жизни однократных посетителейЕсли в течение минуты не было захода – удалятьЗащищает от ботов без кукПротив ботов с поддержкой CookieКак правило, таких ботов меньшеНе хранить анонимов с IE6Определение по browser features –> запись в CookieПерсонализация не везде Captcha…

More Related Content

PPTX
Bootstrap
PPTX
Bootstrap 3. Адаптивная верстка для WordPress
PDF
Desktop app based on node js and html5
PPT
Оживление сайтов
PPTX
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
PDF
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
PDF
Современный фронтенд за 30 минут.
PPTX
Secr15 разработка кросс платформенных десктоп приложений nw.js
Bootstrap
Bootstrap 3. Адаптивная верстка для WordPress
Desktop app based on node js and html5
Оживление сайтов
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
Современный фронтенд за 30 минут.
Secr15 разработка кросс платформенных десктоп приложений nw.js

What's hot (20)

PPT
лекция №10
PDF
Bootstrap3 basics
PPTX
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.js
PPTX
Разработка адаптивных шаблонов на базе Omega
PPT
PDF
Фронтенд разработка без боли
PDF
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
PDF
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
PDF
Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать
PDF
Скриншоты как сервис
PDF
Современный фронтенд -- как не утонуть в море хайпа?
PDF
Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)
PPTX
Jody - JsOn for Dynamic sites on Rails
PPTX
Использование Python для построения сетевых моделей, Алексей Лобозов, ГК «Про...
PPTX
Сборка Front-end’a
PDF
Отдаем страницы быстрее или как вписаться в требования Google
PPT
Internet Explorer 8
PPTX
Node JS проблемы надежности, и пути их решения
лекция №10
Bootstrap3 basics
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.js
Разработка адаптивных шаблонов на базе Omega
Фронтенд разработка без боли
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать
Скриншоты как сервис
Современный фронтенд -- как не утонуть в море хайпа?
Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)
Jody - JsOn for Dynamic sites on Rails
Использование Python для построения сетевых моделей, Алексей Лобозов, ГК «Про...
Сборка Front-end’a
Отдаем страницы быстрее или как вписаться в требования Google
Internet Explorer 8
Node JS проблемы надежности, и пути их решения
Ad

Viewers also liked (20)

PDF
Materisoalipa
PPTX
Assessment
PPT
Nov 2 Class
PPT
Prezentare Proiect Add Ads
PPS
PDF
Sociala Medier - Hot Eller Möjlighet
PPT
April forum bao xuemingIncorporating TaiQi Practices into Chinese Language In...
PDF
French America
PPT
Brain-Based Foreign Language Learning
PPS
Such A Beautiful Story
PPTX
Immigrants
PPTX
GjøR Et Spikk
PPS
Η εφαρμογή του Ταξινομικού συστήματος DEWEY στις ελληνικές λαϊκές βιβλιοθήκες
PPT
Ny State Lote Check Point B Exam, Yuqing Hong
PDF
創世記一至十一章系列五
PPT
Energy efficiency presentation
PPTX
Swine Flu
PPTX
В облаке AWS
PPTX
What could you do with XinSpring?
Materisoalipa
Assessment
Nov 2 Class
Prezentare Proiect Add Ads
Sociala Medier - Hot Eller Möjlighet
April forum bao xuemingIncorporating TaiQi Practices into Chinese Language In...
French America
Brain-Based Foreign Language Learning
Such A Beautiful Story
Immigrants
GjøR Et Spikk
Η εφαρμογή του Ταξινομικού συστήματος DEWEY στις ελληνικές λαϊκές βιβλιοθήκες
Ny State Lote Check Point B Exam, Yuqing Hong
創世記一至十一章系列五
Energy efficiency presentation
Swine Flu
В облаке AWS
What could you do with XinSpring?
Ad

Redis varnish js