I detta dokument presenteras LWeb, ett ramverk för att upprätthålla policyer för märkningsbaserat informationsflöde i databasanvändande webbapplikationer. I ett nötskal, LWeb gifter sig LIO Haskell IFC exekutionsbibliotek med Yesod webbprogrammeringsram. Genomförandet har två delar. Först extraherar vi kärnan av LIO till en monadtransformator (LMonad) och sedan applicera den på Yesods kärnmonad. För det andra utökar vi Yesods tabelldefinition DSL och sökfunktionalitet för att göra det möjligt att definiera och genomdriva märkningsbaserade policyer på tabeller och se till att de efterlevs under frågebehandling. LWeb: s policyspråk är uttrycksfullt, tillåter dynamisk per-tabell och per-rad politik. Vi formaliserar kärnan i LWeb i λ LWeb-kalkylen och mekaniserar beviset på icke-interferens i Liquid Haskell. Denna mekanisering utgör det första metateoretiska beviset som utförs i Liquid Haskell. Vi använde också LWeb för att bygga en betydande webbplats som värd för Build it, Break it, Fixa det säkerhetsorienterade programmeringstävling. Webbplatsen omfattar 40 datatabeller och sofistikerade policyer. Jämfört med att manuellt kontrollera säkerhetspolicyer, LWeb inför en blygsam drifttid overhead på mellan 2% till 21%. Det minskar den betrodda kodbasen från hela programmet till bara 1% av programkoden, och 21% av koden totalt (när du räknar LWeb också).
LWEB REF är ett ramverk för att utveckla säkra multitier-tillämpningar i Haskell.
LWeb: Information Flow Security for Multi-tier Web Applications
{'venue': 'Proc. ACM Program. Lang., Vol. 3, No. POPL, Article 75 (January 2019)', 'journal': None, 'mag_field_of_study': ['Computer Science']}