SlideShare a Scribd company logo
1 of 22
Download to read offline
FML
Un linguaggio semplice per la creazione di form web




                                                   Valentina De Rosa
                              Corso di laurea triennale in Informatica
                                                       a.a. 2010/2011
The only truly secure system is one that is powered off,
cast in a block of concrete and sealed in a lead–lined
room with armed guards.
                                            — E. Spafford
WEB & APP: Welcome, please enjoy our user’s data!
WhiteHat Website Security Statistics Report
ALCUNE STATISTICHE                                                 1/2
                     OWASP Top Ten Project




                     Siti vulnerabili

                     84%


                     Almeno una vulnerabilità
                     fra le 3 più pericolose

                     64%
WhiteHat Website Security Statistics Report
ALCUNE STATISTICHE                                                   2/2
                     OWASP Top Ten Project




                                         Numero medio di vulnerabilità
                                         critiche (per sito)

                                         230
Abilità di programmazione

                    Soluzioni esistenti




-                                     +
<email>
       <configuration>
               <from>restaurant@pizzarealm.com</from>
               <to>$email</to>
               <subject>Reservation made by $surname</subject>
               <text>Mr./Ms. $surname reserved a table for $people peop
               <success>Thank you for reserving a table on $date. We'll
       </configuration>
       <form>
               <name id="surname">



     FML
                            • perme"e di descrivere un’interazione
                       <label>Surname</label>
                       <optional>false</optional> HTML
                            • linguaggio simile ad
               </name>
                            • stru"ura semantica
               <email id="email">
                       <label>Email</label>
                       <optional>false</optional>
               </email>
               <date id="date">
                       <label>Reservation date</label>
                       <optional>false</optional>
               </date>
               <time id="time">
                       <label>Reservation time</label>
                       <interval step="15">12:00-15:00</interval>
<email>
       <configuration>
               <from>restaurant@pizzarealm.com</from>
               <to>$email</to>
               <subject>Reservation made by $surname</subject>
               <text>Mr./Ms. $surname reserved a table for $people peop
               <success>Thank you for reserving a table on $date. We'll
       </configuration>
       <form>
               <name id="surname">



     FML non è
                       <label>Surname</label>
                       <optional>false</optional>
               </name>
               <email id="email">
                       <label>Email</label>
                       <optional>false</optional>
               </email>
               <date id="date">
                       <label>Reservation date</label>
                       <optional>false</optional>
               </date>
               <time id="time">
                       <label>Reservation time</label>
                       <interval step="15">12:00-15:00</interval>
FML in de!aglio
1   2   3
1   <!-- email_form.fml -->
 2   <email>
 3   	 <configuration>
 4   	 	 <to>...</to>
 5   	 	 <subject>...</subject>
 6       ...
 7   	 </configuration>
 8   	 <form>
 9   	 	 <telephone>
10   	 	 	 <label>...</label>
11   	 	 </telephone>
12   	 	 <singleChoice>
13   	 	 	 <choice>...</choice>
14   	 	 	 <choice>...</choice>
15   	 	 </singleChoice>
16       ...
17   	 </form>
18   </email>
19   <!-- end -->
1   <!-- email_form.fml -->
 2   <email>
 3   	 <configuration>
 4   	 	 <to>...</to>
 5   	 	 <subject>...</subject>
 6       ...
 7   	 </configuration>
 8   	 <form>
 9   	 	 <telephone>
10   	 	 	 <label>...</label>
11   	 	 </telephone>
12   	 	 <singleChoice>
13   	 	 	 <choice>...</choice>
14   	 	 	 <choice>...</choice>
15   	 	 </singleChoice>
16       ...
17   	 </form>
18   </email>
19   <!-- end -->
1   <!-- email_form.fml -->
 2   <email>
 3   	 <configuration>
 4   	 	 <to>...</to>
 5   	 	 <subject>...</subject>
 6       ...
 7   	 </configuration>
 8   	 <form>
 9   	 	 <telephone>
10   	 	 	 <label>...</label>
11   	 	 </telephone>
12   	 	 <singleChoice>
13   	 	 	 <choice>...</choice>
14   	 	 	 <choice>...</choice>
15   	 	 </singleChoice>
16       ...
17   	 </form>
18   </email>
19   <!-- end -->
1   <!-- email_form.fml -->
 2   <email>
 3   	 <configuration>
 4   	 	 <to>...</to>
 5   	 	 <subject>...</subject>
 6       ...
 7   	 </configuration>
 8   	 <form>
 9   	 	 <telephone>
10   	 	 	 <label>...</label>
11   	 	 </telephone>
12   	 	 <singleChoice>
13   	 	 	 <choice>...</choice>
14   	 	 	 <choice>...</choice>
15   	 	 </singleChoice>
16       ...
17   	 </form>
18   </email>
19   <!-- end -->
HTTP




 1     Richiesta pagina
PROCESSO            Richiesta della pagina                             1/1




                                                           XHTML



                                                                       WWW



                                             Translator   Javascript




FML le     Parser      FMTree




                                             Evaluator      Mail




                     Con guration
                                                          Database
HTTP
                  +
                 DATI




Invio dei dati    2
PROCESSO            Invio dei dati                             1/1




                                                   XHTML



                                                               WWW



                                     Translator   Javascript




FML le     Parser       FMTree




                                     Evaluator      Mail




                     Con guration
                                                  Database
In conclusione
Each time we create
a fool–proof system
the universe
creates a be!er fool
Verso l’infinito...
Grazie

More Related Content

Similar to FML, un approccio semplice alla sicurezza web

Dia.debian 2013, Trinidade-GO
Dia.debian 2013, Trinidade-GODia.debian 2013, Trinidade-GO
Dia.debian 2013, Trinidade-GO
Ole Peter Smith
 
Interface de Voz con Rails
Interface de Voz con RailsInterface de Voz con Rails
Interface de Voz con Rails
Svet Ivantchev
 
Presentation confoo optimization_sherifzaroubi
Presentation confoo optimization_sherifzaroubiPresentation confoo optimization_sherifzaroubi
Presentation confoo optimization_sherifzaroubi
Valtech Canada
 
Employing Custom Fonts
Employing Custom FontsEmploying Custom Fonts
Employing Custom Fonts
Paul Irish
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operations
grim_radical
 

Similar to FML, un approccio semplice alla sicurezza web (20)

20120424 b
20120424 b20120424 b
20120424 b
 
Cassandra & puppet, scaling data at $15 per month
Cassandra & puppet, scaling data at $15 per monthCassandra & puppet, scaling data at $15 per month
Cassandra & puppet, scaling data at $15 per month
 
Dia.debian 2013, Trinidade-GO
Dia.debian 2013, Trinidade-GODia.debian 2013, Trinidade-GO
Dia.debian 2013, Trinidade-GO
 
Practical RESTful Persistence
Practical RESTful PersistencePractical RESTful Persistence
Practical RESTful Persistence
 
Ch1(introduction to php)
Ch1(introduction to php)Ch1(introduction to php)
Ch1(introduction to php)
 
Séminaire Web Services
Séminaire Web ServicesSéminaire Web Services
Séminaire Web Services
 
Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1
 
Interface de Voz con Rails
Interface de Voz con RailsInterface de Voz con Rails
Interface de Voz con Rails
 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile Apps
 
QSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load RunnerQSpiders - Installation and Brief Dose of Load Runner
QSpiders - Installation and Brief Dose of Load Runner
 
XMPP For Cloud Computing
XMPP For Cloud ComputingXMPP For Cloud Computing
XMPP For Cloud Computing
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
 
SREcon americas 2019 - Latency SLOs Done Right
SREcon americas 2019 - Latency SLOs Done RightSREcon americas 2019 - Latency SLOs Done Right
SREcon americas 2019 - Latency SLOs Done Right
 
FMS Administration Seminar
FMS Administration SeminarFMS Administration Seminar
FMS Administration Seminar
 
HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?HTTP colon slash slash: the end of the road?
HTTP colon slash slash: the end of the road?
 
Presentation confoo optimization_sherifzaroubi
Presentation confoo optimization_sherifzaroubiPresentation confoo optimization_sherifzaroubi
Presentation confoo optimization_sherifzaroubi
 
Employing Custom Fonts
Employing Custom FontsEmploying Custom Fonts
Employing Custom Fonts
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on Purpose
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operations
 
Digital Nightmares - The Biggest Performance Killers in Your Environment
Digital Nightmares - The Biggest Performance Killers in Your EnvironmentDigital Nightmares - The Biggest Performance Killers in Your Environment
Digital Nightmares - The Biggest Performance Killers in Your Environment
 

Recently uploaded

Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
Wonjun Hwang
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 

Recently uploaded (20)

Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
How to Check GPS Location with a Live Tracker in Pakistan
How to Check GPS Location with a Live Tracker in PakistanHow to Check GPS Location with a Live Tracker in Pakistan
How to Check GPS Location with a Live Tracker in Pakistan
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 

FML, un approccio semplice alla sicurezza web

  • 1. FML Un linguaggio semplice per la creazione di form web Valentina De Rosa Corso di laurea triennale in Informatica a.a. 2010/2011
  • 2. The only truly secure system is one that is powered off, cast in a block of concrete and sealed in a lead–lined room with armed guards. — E. Spafford
  • 3. WEB & APP: Welcome, please enjoy our user’s data!
  • 4. WhiteHat Website Security Statistics Report ALCUNE STATISTICHE 1/2 OWASP Top Ten Project Siti vulnerabili 84% Almeno una vulnerabilità fra le 3 più pericolose 64%
  • 5. WhiteHat Website Security Statistics Report ALCUNE STATISTICHE 2/2 OWASP Top Ten Project Numero medio di vulnerabilità critiche (per sito) 230
  • 6. Abilità di programmazione Soluzioni esistenti - +
  • 7. <email>        <configuration>                <from>restaurant@pizzarealm.com</from>                <to>$email</to>                <subject>Reservation made by $surname</subject>                <text>Mr./Ms. $surname reserved a table for $people peop                <success>Thank you for reserving a table on $date. We'll        </configuration>        <form>                <name id="surname"> FML • perme"e di descrivere un’interazione                        <label>Surname</label>                        <optional>false</optional> HTML • linguaggio simile ad                </name> • stru"ura semantica                <email id="email">                        <label>Email</label>                        <optional>false</optional>                </email>                <date id="date">                        <label>Reservation date</label>                        <optional>false</optional>                </date>                <time id="time">                        <label>Reservation time</label>                        <interval step="15">12:00-15:00</interval>
  • 8. <email>        <configuration>                <from>restaurant@pizzarealm.com</from>                <to>$email</to>                <subject>Reservation made by $surname</subject>                <text>Mr./Ms. $surname reserved a table for $people peop                <success>Thank you for reserving a table on $date. We'll        </configuration>        <form>                <name id="surname"> FML non è                        <label>Surname</label>                        <optional>false</optional>                </name>                <email id="email">                        <label>Email</label>                        <optional>false</optional>                </email>                <date id="date">                        <label>Reservation date</label>                        <optional>false</optional>                </date>                <time id="time">                        <label>Reservation time</label>                        <interval step="15">12:00-15:00</interval>
  • 10. 1 2 3
  • 11. 1 <!-- email_form.fml --> 2 <email> 3 <configuration> 4 <to>...</to> 5 <subject>...</subject> 6 ... 7 </configuration> 8 <form> 9 <telephone> 10 <label>...</label> 11 </telephone> 12 <singleChoice> 13 <choice>...</choice> 14 <choice>...</choice> 15 </singleChoice> 16 ... 17 </form> 18 </email> 19 <!-- end -->
  • 12. 1 <!-- email_form.fml --> 2 <email> 3 <configuration> 4 <to>...</to> 5 <subject>...</subject> 6 ... 7 </configuration> 8 <form> 9 <telephone> 10 <label>...</label> 11 </telephone> 12 <singleChoice> 13 <choice>...</choice> 14 <choice>...</choice> 15 </singleChoice> 16 ... 17 </form> 18 </email> 19 <!-- end -->
  • 13. 1 <!-- email_form.fml --> 2 <email> 3 <configuration> 4 <to>...</to> 5 <subject>...</subject> 6 ... 7 </configuration> 8 <form> 9 <telephone> 10 <label>...</label> 11 </telephone> 12 <singleChoice> 13 <choice>...</choice> 14 <choice>...</choice> 15 </singleChoice> 16 ... 17 </form> 18 </email> 19 <!-- end -->
  • 14. 1 <!-- email_form.fml --> 2 <email> 3 <configuration> 4 <to>...</to> 5 <subject>...</subject> 6 ... 7 </configuration> 8 <form> 9 <telephone> 10 <label>...</label> 11 </telephone> 12 <singleChoice> 13 <choice>...</choice> 14 <choice>...</choice> 15 </singleChoice> 16 ... 17 </form> 18 </email> 19 <!-- end -->
  • 15. HTTP 1 Richiesta pagina
  • 16. PROCESSO Richiesta della pagina 1/1 XHTML WWW Translator Javascript FML le Parser FMTree Evaluator Mail Con guration Database
  • 17. HTTP + DATI Invio dei dati 2
  • 18. PROCESSO Invio dei dati 1/1 XHTML WWW Translator Javascript FML le Parser FMTree Evaluator Mail Con guration Database
  • 20. Each time we create a fool–proof system the universe creates a be!er fool