Som webbprogram har ökat i popularitet, så har attacker mot sådana program. Manus- och injektionsattacker har blivit särskilt problematiska. Båda sårbarheterna härrör, i sin kärna, från felaktig sanering av användarinmatning. Vi föreslår statisk föroreningsanalys, som kan verifiera frånvaron av osanitära inmatningsfel vid kompileringstidpunkten. Tyvärr är exakt statisk analys av moderna skriptspråk som Python utmanande: högre ordning och komplex kontrollflöde kollidera med ogenomskinliga, dynamiska datastrukturer som hashkartor och objekt. Det ömsesidiga beroendet mellan dataflöde och kontrollflöde gör det svårt att uppnå både sundhet och precision. I detta arbete tillämpar vi abstrakt tolkning på ljud och exakt fläck-stil statisk analys av skriptspråk. Vi definierar först λH, en kärnkalkyl av moderna skriptspråk, med hashkartor, dynamiska objekt, högre ordning funktioner och första klass kontroll. Sedan härleder vi en ram av k-CFA-liknande CESK-stil abstrakta maskiner för statiskt resonemang om λH, men med hash kartor räknas in i en "Curried Object Store." Den Curried objekt lagra-och form analys på denna butik-tillåter oss att återställa fältkänslighet, även i närvaro av dynamiskt modifierade fält. Slutligen, ovanpå detta ramverk, utformar vi en fläck-flödesanalys som utnyttjar dess fältkänsliga, interprocedurala och kontextkänsliga egenskaper för att ljudligt och exakt upptäcka säkerhetssårbarheter, som XSS attacker i webbapplikationer. Vi har prototyperat det analytiska ramverket för Python och genomfört preliminära experiment med webbapplikationer. En låg frekvens av falska alarm visar löftet om detta tillvägagångssätt.
Liang och Might REF presenterar en Scheme-liknande kärnkalkyl för skriptspråk som Python.
Hash-flow taint analysis of higher-order programs
{'venue': "PLAS '12", 'journal': None, 'mag_field_of_study': ['Computer Science']}