SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
Content Access Control with 
Varnish Cache 
A quick look at some challenges & considerations 
Carlos Abalde, Roberto Moreda 
{cabalde,moreda}@allenta.com 
Stockholm, Varnish Summit 2014
Agenda 
๏ Our particular journey designing & deploying 
access control solutions based on Varnish Plus 
๏ Contents 
‣ Varnish Paywall 
‣ Challenges & considerations 
‣ Conclusions
Who are we? 
๏ Allenta Consulting 
‣ http://www.allenta.com 
๏ Varnish Software integration partner 
๏ Specialized in Varnish Paywall 
‣ Paywall projects running in Italy, Ireland & 
Argentina at the moment
Johann meets Varnish 
Paywall
Hello, I’m Johann!
Who’s Johann? 
๏ According to Wikipedia, Johann Carolus is the 
name of the publisher of the first newspaper 
๏ He’s also the hero of this presentation 
๏ Johann is yet another publisher worried for the 
decline of advertising revenue in on-line media 
‣ Evolution of traditional ad-based models? 
‣ Alternative tool for monetizing on-line contents?
Johann has a wish list 
๏ Transition to a subscription-based model 
‣ Flexible / extensible subscription model 
- Metered subscriptions 
- Partial subscriptions 
๏ Freemium model 
๏ Owned contents
… a huge wish list! 
๏ Separate Plug & Play component 
‣ Minimal changes to existing backend 
๏ Scalable & high performance solution 
‣ Do not degrade current UX 
๏ On-premises solution 
‣ Full control of the product
What’s VPW? 
๏ Part of Varnish Plus 
‣ Access control logic moved to the caching edge 
‣ Fast & flexible paid content delivery 
๏ Win-win toolkit solution 
‣ Powerful access control layer 
‣ Advanced caching technology
What’s really VPW? 
๏ Some VCL subroutines, a few general purpose 
OSS VMODs, and one access control specific 
VMOD 
๏ Optionally, 
‣ Some high performance storage 
‣ Some Varnish Custom Statistics counters 
‣ Some JavaScript assets
Beyond newspapers 
๏ VPW is not a traditional media specific product 
๏ VPW is about moving access control logic to the 
caching edge 
‣ Execute access control logic at Varnish speed 
‣ Improve hit ratio 
‣ Simplify backend logic
VPW is also for… 
๏ Alice, who’s running a trading site willing to 
distribute certain reports only to premium users 
๏ Bob, who has been asked to speed up a paid music 
streaming service 
๏ Emma, who’s running a slow site of stock images 
limited to 5 downloads per day per authenticated 
user 
๏ …
Johann meets Cosme
Who’s Cosme? 
๏ Cosme is an engineer working at Allenta 
๏ He has been working on access control solutions 
based on Varnish Plus for a few years 
๏ Cosme discusses with Johann some usual 
challenges & considerations when adding a 
paywall layer to an existing website 
‣ Anonymous metering, storage options, SEO…
Anonymous metering 
“Let’s do this NYT style” 
๏ “I don’t want the paywall to bother casual 
readers. Let’s do this NYT style. Only require 
authentication after 10 articles have been 
accessed during the current month” 
๏ “I’ve read the NYT paywall is breakable using a 
simple bookmarklet. Seriously?” 
๏ “What about using browser fingerprinting 
to identify anonymous users?”
Anonymous metering 
Metering cookies 
๏ Metering based on cookies is breakable 
‣ Is this a real issue from a business perspective? 
‣ Restrict contents eligible for anonymous access 
- Focus on user engaging 
๏ Cookie backups in local storage, DOM… 
- https://github.com/samyk/evercookie
Anonymous metering 
Browser fingerprinting 
๏ Server side metering 
‣ https://github.com/Valve/fingerprintjs 
๏ Not a real solution 
‣ Also easily breakable 
‣ Collisions 
- Mobile devices, cloned desktops…
Paywall state 
“Where is metering data stored?” 
๏ “Where is metering data stored?” 
๏ “Systems guys are asking about scalability of 
the storage layer keeping track of the state of 
the paywall. What about this?” 
๏ “And what about HA? What are the options 
here?”
Paywall state 
Memcached vs. Redis 
๏ Memcached 
‣ https://github.com/varnish/libvmod-memcached 
๏ Redis 
‣ https://github.com/carlosabalde/libvmod-redis 
‣ Persistence 
‣ Richer API & Power of LUA scripting
Paywall state 
Current scalability & HA options 
๏ Twemproxy 
‣ https://github.com/twitter/twemproxy 
‣ Light-weight sharding proxy for MC & Redis 
๏ Redis Sentinel 
‣ http://redis.io/topics/sentinel 
‣ Monitoring, notification & automatic failover
Paywall state 
Future scalability & HA options 
๏ Redis Cluster 
‣ http://redis.io/topics/cluster-tutorial 
‣ Automatic sharding & replication for Redis 
๏ Dynomite 
‣ https://github.com/Netflix/dynomite 
‣ Dynamo implementation for MC & Redis
SEO 
“Let Google bot access to all paywalled contents” 
๏ “Google bot should be able to index all contents 
in my site, both paywalled and not paywalled 
ones” 
๏ “Simply detect the bot checking the User Agent 
HTTP header, check the source IP address using 
the DNS VMOD, and let it access to all 
paywalled contents”
SEO 
Google’s First Click Free Policy for Web Search 
๏ Google penalices content cloaking 
๏ FCF requires that all users who click a Google 
search result should be allowed to see the full 
text of the content they are trying to access 
‣ That text must be identical to the content that was 
shown to Google bot on indexing time 
‣ Publishers are allowed to limit the number of 
accesses under the FCF policy to 5 accesses per 
user each day
SEO 
FCF implications 
๏ Users may get access even when their quotas are 
exhausted or they are even not authenticated 
๏ Breakable exclusion based on Referrer header 
‣ Well known issue of FT and other newspapers 
‣ What about teasers? 
- Same URL internally rewritten by Varnish 
- Not useful for freemium contents
And much more… 
๏ Access control exclusions 
๏ Fraud detection 
๏ Testing strategy 
๏ Paywall API & Agent 
๏ Usage statistics 
๏ …
Conclusions
Conclusions 
๏ VPW is a powerful paywalling toolkit 
‣ Flexibility 
‣ Access control logic running at Varnish speed 
๏ Win-win solution 
‣ Advanced caching technology 
‣ Powerful access control layer
Thanks!
Bonus slides
How does VPW work? 
๏ Custom HTTP headers 
‣ X-Pw-Access-Control… 
๏ API services 
‣ Authorization service… 
๏ Securely signed cookies 
๏ High performance storage
Exclusions 
“And now some exceptions” 
๏ “The IP ranges of these companies should 
completely bypass the paywall. We have some 
B2B agreements with them” 
๏ “The web views used by our official mobile apps 
should also bypass the paywall” 
๏ “Any click on paywalled contents linked in 
Facebook or Twitter should also bypass 
the paywall”
Exclusions 
Beware of fake HTTP headers 
๏ It’s completely reasonable to bypass the paywall 
logic based on: 
‣ A Varnish ACL 
‣ Some ad-hoc HTTP headers including a HMAC 
signature generated using a secret shared 
between Varnish and the mobile apps 
๏ Bypassing the paywall logic based on the HTTP 
referrer header is weak and should be carefully 
analyzed
Fraud detection 
“Sharing unmetered subscriptions” 
๏ “What if some user purchases an unmetered 
subscription and then shares his/her credentials 
with all his/her Facebook friends?” 
๏ “What if an office using a NAT proxy buy a single 
unmetered subscription to all the 
employees in the building?”
Fraud detection 
Rate limiting 
๏ You may be able to detect fraud in your user 
management component 
‣ Limit number / rate of sessions per user 
‣ Force extra validations / block users when a 
suspicious behavior is detected 
๏ Paywall may help if you are not able to do that 
‣ Redis sorted set restricting number of SIDs & IPs 
per user during some short time window

Más contenido relacionado

La actualidad más candente

Herding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxHerding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxColdFusionConference
 
Altitude SF 2017: Logging at the edge
Altitude SF 2017: Logging at the edgeAltitude SF 2017: Logging at the edge
Altitude SF 2017: Logging at the edgeFastly
 
Maximizing Performance with SPDY and SSL
Maximizing Performance with SPDY and SSLMaximizing Performance with SPDY and SSL
Maximizing Performance with SPDY and SSLZoompf
 
About Caching
About CachingAbout Caching
About CachingWeng Wei
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSocketsGunnar Hillert
 
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...PHP Conference Argentina
 
Optimizing website performance
Optimizing website performanceOptimizing website performance
Optimizing website performancePublisto Ltd.
 
HTML5 WebSocket Introduction
HTML5 WebSocket IntroductionHTML5 WebSocket Introduction
HTML5 WebSocket IntroductionMarcelo Jabali
 
Steam Learn : Varnish or How to reduce the load of your web server
Steam Learn : Varnish or How to reduce the load of your web serverSteam Learn : Varnish or How to reduce the load of your web server
Steam Learn : Varnish or How to reduce the load of your web serverinovia
 
Securing your web infrastructure
Securing your web infrastructureSecuring your web infrastructure
Securing your web infrastructureWP Engine
 
Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)
Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)
Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)Grant Norwood
 
vlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentationvlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets PresentationVolodymyr Lavrynovych
 
Automated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriverAutomated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriverseleniumconf
 
Maximizing SPDY and SSL Performance (June 2014)
Maximizing SPDY and SSL Performance (June 2014)Maximizing SPDY and SSL Performance (June 2014)
Maximizing SPDY and SSL Performance (June 2014)Zoompf
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?Eduard Tomàs
 
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...Neklo
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2Fastly
 
Web performance testing with web driver
Web performance testing with web driverWeb performance testing with web driver
Web performance testing with web driverMichael Klepikov
 

La actualidad más candente (20)

Realtime with websockets
Realtime with websocketsRealtime with websockets
Realtime with websockets
 
Herding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxHerding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandbox
 
Altitude SF 2017: Logging at the edge
Altitude SF 2017: Logging at the edgeAltitude SF 2017: Logging at the edge
Altitude SF 2017: Logging at the edge
 
Realtime with-websockets-2015
Realtime with-websockets-2015Realtime with-websockets-2015
Realtime with-websockets-2015
 
Maximizing Performance with SPDY and SSL
Maximizing Performance with SPDY and SSLMaximizing Performance with SPDY and SSL
Maximizing Performance with SPDY and SSL
 
About Caching
About CachingAbout Caching
About Caching
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSockets
 
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
2013 - Igor Sysoev - NGINx: origen, evolución y futuro - PHP Conference Argen...
 
Optimizing website performance
Optimizing website performanceOptimizing website performance
Optimizing website performance
 
HTML5 WebSocket Introduction
HTML5 WebSocket IntroductionHTML5 WebSocket Introduction
HTML5 WebSocket Introduction
 
Steam Learn : Varnish or How to reduce the load of your web server
Steam Learn : Varnish or How to reduce the load of your web serverSteam Learn : Varnish or How to reduce the load of your web server
Steam Learn : Varnish or How to reduce the load of your web server
 
Securing your web infrastructure
Securing your web infrastructureSecuring your web infrastructure
Securing your web infrastructure
 
Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)
Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)
Cluster Fudge: Recipes for WordPress in the Cloud (WordCamp Austin 2014 Speaker)
 
vlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentationvlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentation
 
Automated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriverAutomated Web App Performance Testing Using WebDriver
Automated Web App Performance Testing Using WebDriver
 
Maximizing SPDY and SSL Performance (June 2014)
Maximizing SPDY and SSL Performance (June 2014)Maximizing SPDY and SSL Performance (June 2014)
Maximizing SPDY and SSL Performance (June 2014)
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2
 
Web performance testing with web driver
Web performance testing with web driverWeb performance testing with web driver
Web performance testing with web driver
 

Similar a Content Access Control with Varnish Cache: Challenges and Considerations

Six Steps to Build Successful APIs
Six Steps to Build Successful APIsSix Steps to Build Successful APIs
Six Steps to Build Successful APIsWSO2
 
Six Steps To Build A Successful API
Six Steps To Build A Successful APISix Steps To Build A Successful API
Six Steps To Build A Successful APIChris Haddad
 
Mobile for PHP developers
Mobile for PHP developersMobile for PHP developers
Mobile for PHP developersIvo Jansch
 
(For non-developers) HTML5: A richer web for everyone
(For non-developers) HTML5: A richer web for everyone(For non-developers) HTML5: A richer web for everyone
(For non-developers) HTML5: A richer web for everyoneChris Mills
 
Optimizing content for the "mobile web"
Optimizing content for the "mobile web"Optimizing content for the "mobile web"
Optimizing content for the "mobile web"Chris Mills
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoChristian Heilmann
 
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationvue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationDivante
 
Using WooCommerce to Scale Your Store
Using WooCommerce to Scale Your StoreUsing WooCommerce to Scale Your Store
Using WooCommerce to Scale Your StoreWP Engine
 
Online ecommerce website srs
Online ecommerce  website srsOnline ecommerce  website srs
Online ecommerce website srsSM Nurnobi
 
Validating Session Isolation for Web Crawling to Provide Data Integrity
Validating Session Isolation for Web Crawling to Provide Data IntegrityValidating Session Isolation for Web Crawling to Provide Data Integrity
Validating Session Isolation for Web Crawling to Provide Data IntegrityGiacomo Zecchini
 
Building A Relevancy Engine Using MongoDB and Go
Building A Relevancy Engine Using MongoDB and GoBuilding A Relevancy Engine Using MongoDB and Go
Building A Relevancy Engine Using MongoDB and Goardan-bkennedy
 
Making Blockchain Real for Business at the "z Systems Agile Enterprise Develo...
Making Blockchain Real for Business at the "z Systems Agile Enterprise Develo...Making Blockchain Real for Business at the "z Systems Agile Enterprise Develo...
Making Blockchain Real for Business at the "z Systems Agile Enterprise Develo...DevOps for Enterprise Systems
 
SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
SOA Knowledge Kit, Developer Productivity  and Performance Comparison AnalysisSOA Knowledge Kit, Developer Productivity  and Performance Comparison Analysis
SOA Knowledge Kit, Developer Productivity and Performance Comparison AnalysisClever Moe
 
Introducing The WSO2 Platform
Introducing The WSO2 Platform Introducing The WSO2 Platform
Introducing The WSO2 Platform WSO2
 
Plesk WP Toolkit - Growing Together @Cloudfest 2022
Plesk WP Toolkit - Growing Together @Cloudfest 2022Plesk WP Toolkit - Growing Together @Cloudfest 2022
Plesk WP Toolkit - Growing Together @Cloudfest 2022Plesk
 
Choosing the Right E-commerce Solution
Choosing the Right E-commerce SolutionChoosing the Right E-commerce Solution
Choosing the Right E-commerce SolutionDr Matt McDougall
 
Qworum: Making the Web more suitable for applications
Qworum: Making the Web more suitable for applicationsQworum: Making the Web more suitable for applications
Qworum: Making the Web more suitable for applicationsdogarma
 
Mobile Web High Performance
Mobile Web High PerformanceMobile Web High Performance
Mobile Web High PerformanceAmjad Rafique
 

Similar a Content Access Control with Varnish Cache: Challenges and Considerations (20)

Six Steps to Build Successful APIs
Six Steps to Build Successful APIsSix Steps to Build Successful APIs
Six Steps to Build Successful APIs
 
Six Steps To Build A Successful API
Six Steps To Build A Successful APISix Steps To Build A Successful API
Six Steps To Build A Successful API
 
Mobile for PHP developers
Mobile for PHP developersMobile for PHP developers
Mobile for PHP developers
 
(For non-developers) HTML5: A richer web for everyone
(For non-developers) HTML5: A richer web for everyone(For non-developers) HTML5: A richer web for everyone
(For non-developers) HTML5: A richer web for everyone
 
Optimizing content for the "mobile web"
Optimizing content for the "mobile web"Optimizing content for the "mobile web"
Optimizing content for the "mobile web"
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San Francisco
 
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationvue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
 
Using WooCommerce to Scale Your Store
Using WooCommerce to Scale Your StoreUsing WooCommerce to Scale Your Store
Using WooCommerce to Scale Your Store
 
Ecommerce Solutions (China & West)
Ecommerce Solutions (China & West)Ecommerce Solutions (China & West)
Ecommerce Solutions (China & West)
 
3-18-11
3-18-113-18-11
3-18-11
 
Online ecommerce website srs
Online ecommerce  website srsOnline ecommerce  website srs
Online ecommerce website srs
 
Validating Session Isolation for Web Crawling to Provide Data Integrity
Validating Session Isolation for Web Crawling to Provide Data IntegrityValidating Session Isolation for Web Crawling to Provide Data Integrity
Validating Session Isolation for Web Crawling to Provide Data Integrity
 
Building A Relevancy Engine Using MongoDB and Go
Building A Relevancy Engine Using MongoDB and GoBuilding A Relevancy Engine Using MongoDB and Go
Building A Relevancy Engine Using MongoDB and Go
 
Making Blockchain Real for Business at the "z Systems Agile Enterprise Develo...
Making Blockchain Real for Business at the "z Systems Agile Enterprise Develo...Making Blockchain Real for Business at the "z Systems Agile Enterprise Develo...
Making Blockchain Real for Business at the "z Systems Agile Enterprise Develo...
 
SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
SOA Knowledge Kit, Developer Productivity  and Performance Comparison AnalysisSOA Knowledge Kit, Developer Productivity  and Performance Comparison Analysis
SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
 
Introducing The WSO2 Platform
Introducing The WSO2 Platform Introducing The WSO2 Platform
Introducing The WSO2 Platform
 
Plesk WP Toolkit - Growing Together @Cloudfest 2022
Plesk WP Toolkit - Growing Together @Cloudfest 2022Plesk WP Toolkit - Growing Together @Cloudfest 2022
Plesk WP Toolkit - Growing Together @Cloudfest 2022
 
Choosing the Right E-commerce Solution
Choosing the Right E-commerce SolutionChoosing the Right E-commerce Solution
Choosing the Right E-commerce Solution
 
Qworum: Making the Web more suitable for applications
Qworum: Making the Web more suitable for applicationsQworum: Making the Web more suitable for applications
Qworum: Making the Web more suitable for applications
 
Mobile Web High Performance
Mobile Web High PerformanceMobile Web High Performance
Mobile Web High Performance
 

Último

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 

Último (20)

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 

Content Access Control with Varnish Cache: Challenges and Considerations

  • 1. Content Access Control with Varnish Cache A quick look at some challenges & considerations Carlos Abalde, Roberto Moreda {cabalde,moreda}@allenta.com Stockholm, Varnish Summit 2014
  • 2. Agenda ๏ Our particular journey designing & deploying access control solutions based on Varnish Plus ๏ Contents ‣ Varnish Paywall ‣ Challenges & considerations ‣ Conclusions
  • 3. Who are we? ๏ Allenta Consulting ‣ http://www.allenta.com ๏ Varnish Software integration partner ๏ Specialized in Varnish Paywall ‣ Paywall projects running in Italy, Ireland & Argentina at the moment
  • 4.
  • 7. Who’s Johann? ๏ According to Wikipedia, Johann Carolus is the name of the publisher of the first newspaper ๏ He’s also the hero of this presentation ๏ Johann is yet another publisher worried for the decline of advertising revenue in on-line media ‣ Evolution of traditional ad-based models? ‣ Alternative tool for monetizing on-line contents?
  • 8. Johann has a wish list ๏ Transition to a subscription-based model ‣ Flexible / extensible subscription model - Metered subscriptions - Partial subscriptions ๏ Freemium model ๏ Owned contents
  • 9. … a huge wish list! ๏ Separate Plug & Play component ‣ Minimal changes to existing backend ๏ Scalable & high performance solution ‣ Do not degrade current UX ๏ On-premises solution ‣ Full control of the product
  • 10.
  • 11.
  • 12. What’s VPW? ๏ Part of Varnish Plus ‣ Access control logic moved to the caching edge ‣ Fast & flexible paid content delivery ๏ Win-win toolkit solution ‣ Powerful access control layer ‣ Advanced caching technology
  • 13. What’s really VPW? ๏ Some VCL subroutines, a few general purpose OSS VMODs, and one access control specific VMOD ๏ Optionally, ‣ Some high performance storage ‣ Some Varnish Custom Statistics counters ‣ Some JavaScript assets
  • 14.
  • 15. Beyond newspapers ๏ VPW is not a traditional media specific product ๏ VPW is about moving access control logic to the caching edge ‣ Execute access control logic at Varnish speed ‣ Improve hit ratio ‣ Simplify backend logic
  • 16. VPW is also for… ๏ Alice, who’s running a trading site willing to distribute certain reports only to premium users ๏ Bob, who has been asked to speed up a paid music streaming service ๏ Emma, who’s running a slow site of stock images limited to 5 downloads per day per authenticated user ๏ …
  • 17.
  • 19. Who’s Cosme? ๏ Cosme is an engineer working at Allenta ๏ He has been working on access control solutions based on Varnish Plus for a few years ๏ Cosme discusses with Johann some usual challenges & considerations when adding a paywall layer to an existing website ‣ Anonymous metering, storage options, SEO…
  • 20. Anonymous metering “Let’s do this NYT style” ๏ “I don’t want the paywall to bother casual readers. Let’s do this NYT style. Only require authentication after 10 articles have been accessed during the current month” ๏ “I’ve read the NYT paywall is breakable using a simple bookmarklet. Seriously?” ๏ “What about using browser fingerprinting to identify anonymous users?”
  • 21. Anonymous metering Metering cookies ๏ Metering based on cookies is breakable ‣ Is this a real issue from a business perspective? ‣ Restrict contents eligible for anonymous access - Focus on user engaging ๏ Cookie backups in local storage, DOM… - https://github.com/samyk/evercookie
  • 22. Anonymous metering Browser fingerprinting ๏ Server side metering ‣ https://github.com/Valve/fingerprintjs ๏ Not a real solution ‣ Also easily breakable ‣ Collisions - Mobile devices, cloned desktops…
  • 23. Paywall state “Where is metering data stored?” ๏ “Where is metering data stored?” ๏ “Systems guys are asking about scalability of the storage layer keeping track of the state of the paywall. What about this?” ๏ “And what about HA? What are the options here?”
  • 24. Paywall state Memcached vs. Redis ๏ Memcached ‣ https://github.com/varnish/libvmod-memcached ๏ Redis ‣ https://github.com/carlosabalde/libvmod-redis ‣ Persistence ‣ Richer API & Power of LUA scripting
  • 25. Paywall state Current scalability & HA options ๏ Twemproxy ‣ https://github.com/twitter/twemproxy ‣ Light-weight sharding proxy for MC & Redis ๏ Redis Sentinel ‣ http://redis.io/topics/sentinel ‣ Monitoring, notification & automatic failover
  • 26. Paywall state Future scalability & HA options ๏ Redis Cluster ‣ http://redis.io/topics/cluster-tutorial ‣ Automatic sharding & replication for Redis ๏ Dynomite ‣ https://github.com/Netflix/dynomite ‣ Dynamo implementation for MC & Redis
  • 27. SEO “Let Google bot access to all paywalled contents” ๏ “Google bot should be able to index all contents in my site, both paywalled and not paywalled ones” ๏ “Simply detect the bot checking the User Agent HTTP header, check the source IP address using the DNS VMOD, and let it access to all paywalled contents”
  • 28. SEO Google’s First Click Free Policy for Web Search ๏ Google penalices content cloaking ๏ FCF requires that all users who click a Google search result should be allowed to see the full text of the content they are trying to access ‣ That text must be identical to the content that was shown to Google bot on indexing time ‣ Publishers are allowed to limit the number of accesses under the FCF policy to 5 accesses per user each day
  • 29. SEO FCF implications ๏ Users may get access even when their quotas are exhausted or they are even not authenticated ๏ Breakable exclusion based on Referrer header ‣ Well known issue of FT and other newspapers ‣ What about teasers? - Same URL internally rewritten by Varnish - Not useful for freemium contents
  • 30. And much more… ๏ Access control exclusions ๏ Fraud detection ๏ Testing strategy ๏ Paywall API & Agent ๏ Usage statistics ๏ …
  • 32. Conclusions ๏ VPW is a powerful paywalling toolkit ‣ Flexibility ‣ Access control logic running at Varnish speed ๏ Win-win solution ‣ Advanced caching technology ‣ Powerful access control layer
  • 35. How does VPW work? ๏ Custom HTTP headers ‣ X-Pw-Access-Control… ๏ API services ‣ Authorization service… ๏ Securely signed cookies ๏ High performance storage
  • 36. Exclusions “And now some exceptions” ๏ “The IP ranges of these companies should completely bypass the paywall. We have some B2B agreements with them” ๏ “The web views used by our official mobile apps should also bypass the paywall” ๏ “Any click on paywalled contents linked in Facebook or Twitter should also bypass the paywall”
  • 37. Exclusions Beware of fake HTTP headers ๏ It’s completely reasonable to bypass the paywall logic based on: ‣ A Varnish ACL ‣ Some ad-hoc HTTP headers including a HMAC signature generated using a secret shared between Varnish and the mobile apps ๏ Bypassing the paywall logic based on the HTTP referrer header is weak and should be carefully analyzed
  • 38. Fraud detection “Sharing unmetered subscriptions” ๏ “What if some user purchases an unmetered subscription and then shares his/her credentials with all his/her Facebook friends?” ๏ “What if an office using a NAT proxy buy a single unmetered subscription to all the employees in the building?”
  • 39. Fraud detection Rate limiting ๏ You may be able to detect fraud in your user management component ‣ Limit number / rate of sessions per user ‣ Force extra validations / block users when a suspicious behavior is detected ๏ Paywall may help if you are not able to do that ‣ Redis sorted set restricting number of SIDs & IPs per user during some short time window