SlideShare a Scribd company logo
Data Validation in Web ApplicationsWelcome to:
Hi! I’m Scott KirklandSlinging code @ UCDavis for 8 yearsCurrently Sr. Application Architect for the College Of Agricultural and Environmental Sciences Dean’s OfficeOpen source coderhttps://github.com/srkirklandMvcHtml5, Data Annotations Extensions, ITSecuritySymposiumhttps://github.com/ucdavisUCDArch, Web ApplicationsCo-founded the local .NET User Group
Data Validation in Web ApplicationsWelcome to:
The most common web application security weakness is the failure to properly validate input from the client or environment. - OWASP[1]
Data validation in web applications
Aka: Trust No One Data
Input Validation
Topics:
Input Validation in Web FormsEnsure user supplied data is Strongly typedCorrect syntaxWithin length boundariesContains only permitted charactersOr that numbers are correctly signed and within range boundariesIs “business rule correct”
Client Side ValidationValidate data on the client firstProvides better feedback to the end userMakes your site feel more responsiveAlways validate on server-side as well!
JavaScript Validation“Current” solution, useful & widely supported (Probably about 95%)Any JavaScript errors and validation disappearsFairly difficult to implement, though libraries help[3]
JavaScript Validation: EmailIs this a good email regex?\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\bYes, except when it isn’tNon-english, some TLDs not covered, no special charsHow about this (RFC 2822)?(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])Allows some crazy stuff, like \@scott\@=k@domain.com
Input Validation w/ HTML5
HTML5 Input ValidationTwo major form validation innovationsNew Input TypesConstraint Validation
HTML5 Input TypesNew input types were added to augment<input type=“text” />
HTML5 Input Typessearchtelurlemailnumberrangecolordatetimedatemonthweektimedatetime-local
HTML5 Input TypesGives semantic meaning to your formsEnable behaviors based on input type
DEMO: Html5 Input Types
HTML5 Input TypesSo, that was pretty coolSimply changing input types can add basic validationBenefits go beyond validationAdditive only – no drawbacks
HTML5 Input Types<input type=“email” /><input type=“url” />
HTML5 Input Types<input type=“tel” /><input type=“number” />
HTML5 Constraint ValidationRequiredPatternMaxLengthMin/Max
HTML5 Constraint ValidationRequired<input type=“text” required />MaxLength<input type=“text” maxlength=“10” />Pattern<input type=“text” pattern=“[0-9]{5}” />
DEMO: Html5 Constraints
Of course, this only works in HTML5 capable browsersOlder browsers will ignore these new attributesWith JavaScript you can “Polyfill” for “regressive” enhancement
One More Thing…
PolyfillA polyfill, or polyfiller, is a piece of code (or plugin) that provides the technology that you, the developer, expect the browser to provide nativelyGenerally, you test the browser for a feature.  If it is not present natively, use JavaScript to add the feature
Develop for tomorrow… today!Great library called Modernizrhttp://www.modernizr.com/Helps with feature detection & media queriesAllows older browsers to work with Html5 elementsMuch more
DEMO: Polyfills
HTML5 Data Validation:Pragmatic Advice
Use the new input types They may do data validation for youMake your users happy (iOS & more)They will keep getting betterNative experience
Constraint ValidationUseful for “first line of defense” or backupYou should continue to use JavaScript for client validation

More Related Content

What's hot (20)

Network Security
Network SecurityNetwork Security
Network Security
MAJU
 
Virtual Private Networks (VPN) ppt
Virtual Private Networks (VPN) pptVirtual Private Networks (VPN) ppt
Virtual Private Networks (VPN) ppt
OECLIB Odisha Electronics Control Library
 
Ud6 redes locales
Ud6 redes localesUd6 redes locales
Ud6 redes locales
carmenrico14
 
Spam
SpamSpam
Spam
Apostolos Syropoulos
 
Web security
Web securityWeb security
Web security
kareem zock
 
Cybersecurity PowerPoint Presentation
Cybersecurity PowerPoint PresentationCybersecurity PowerPoint Presentation
Cybersecurity PowerPoint Presentation
Ritik Kumar
 
IP Configuration
IP ConfigurationIP Configuration
IP Configuration
Stephen Raj
 
Cyber Security Awareness
Cyber Security AwarenessCyber Security Awareness
Cyber Security Awareness
Ramiro Cid
 
Networking ppt
Networking ppt Networking ppt
Networking ppt
Shovan Mandal
 
Wireless Network Security
Wireless Network SecurityWireless Network Security
Wireless Network Security
Gyana Ranjana
 
Network Security Threats and Solutions
Network Security Threats and SolutionsNetwork Security Threats and Solutions
Network Security Threats and Solutions
Colin058
 
Password Management
Password ManagementPassword Management
Password Management
Rick Chin
 
Cyber security threats for 2017
Cyber security threats for 2017Cyber security threats for 2017
Cyber security threats for 2017
Ramiro Cid
 
Cyber security fundamentals
Cyber security fundamentalsCyber security fundamentals
Cyber security fundamentals
Cloudflare
 
Learn Ethical Hacking in 10 Hours | Ethical Hacking Full Course | Edureka
Learn Ethical Hacking in 10 Hours | Ethical Hacking Full Course | EdurekaLearn Ethical Hacking in 10 Hours | Ethical Hacking Full Course | Edureka
Learn Ethical Hacking in 10 Hours | Ethical Hacking Full Course | Edureka
Edureka!
 
All about email
All about emailAll about email
All about email
estefana4
 
Email
EmailEmail
Email
Muhammad Hasham
 
SERVICES ON THE INTERNET
SERVICES ON THE INTERNETSERVICES ON THE INTERNET
SERVICES ON THE INTERNET
Riya Gupta
 
Web security
Web securityWeb security
Web security
Muhammad Usman
 
Network security ppt
Network security pptNetwork security ppt
Network security ppt
OECLIB Odisha Electronics Control Library
 
Network Security
Network SecurityNetwork Security
Network Security
MAJU
 
Cybersecurity PowerPoint Presentation
Cybersecurity PowerPoint PresentationCybersecurity PowerPoint Presentation
Cybersecurity PowerPoint Presentation
Ritik Kumar
 
IP Configuration
IP ConfigurationIP Configuration
IP Configuration
Stephen Raj
 
Cyber Security Awareness
Cyber Security AwarenessCyber Security Awareness
Cyber Security Awareness
Ramiro Cid
 
Wireless Network Security
Wireless Network SecurityWireless Network Security
Wireless Network Security
Gyana Ranjana
 
Network Security Threats and Solutions
Network Security Threats and SolutionsNetwork Security Threats and Solutions
Network Security Threats and Solutions
Colin058
 
Password Management
Password ManagementPassword Management
Password Management
Rick Chin
 
Cyber security threats for 2017
Cyber security threats for 2017Cyber security threats for 2017
Cyber security threats for 2017
Ramiro Cid
 
Cyber security fundamentals
Cyber security fundamentalsCyber security fundamentals
Cyber security fundamentals
Cloudflare
 
Learn Ethical Hacking in 10 Hours | Ethical Hacking Full Course | Edureka
Learn Ethical Hacking in 10 Hours | Ethical Hacking Full Course | EdurekaLearn Ethical Hacking in 10 Hours | Ethical Hacking Full Course | Edureka
Learn Ethical Hacking in 10 Hours | Ethical Hacking Full Course | Edureka
Edureka!
 
All about email
All about emailAll about email
All about email
estefana4
 
SERVICES ON THE INTERNET
SERVICES ON THE INTERNETSERVICES ON THE INTERNET
SERVICES ON THE INTERNET
Riya Gupta
 

Viewers also liked (20)

Types of Data Validation
Types of Data ValidationTypes of Data Validation
Types of Data Validation
Metric Fox
 
Data validation
Data validationData validation
Data validation
Qamar Wajid
 
Validation for different kind of data
Validation for different kind of dataValidation for different kind of data
Validation for different kind of data
song_lachinhminh_smile
 
Validation and Verification
Validation and VerificationValidation and Verification
Validation and Verification
mrmwood
 
verification and validation
verification and validationverification and validation
verification and validation
Dinesh Pasi
 
Data validation option
Data validation optionData validation option
Data validation option
maheshwarpoloju
 
Data Verification
Data VerificationData Verification
Data Verification
InfoCheckPoint
 
Validation and verification
Validation and verificationValidation and verification
Validation and verification
De La Salle University-Manila
 
PROCESS VALIDATION
PROCESS VALIDATIONPROCESS VALIDATION
PROCESS VALIDATION
Pharmaceutical
 
Audit logs for Security and Compliance
Audit logs for Security and ComplianceAudit logs for Security and Compliance
Audit logs for Security and Compliance
Anton Chuvakin
 
Dynamic Data Validation Lists
Dynamic Data Validation ListsDynamic Data Validation Lists
Dynamic Data Validation Lists
Marc Rivait, PMP
 
How to create a validation list in excel
How to create a validation list in excelHow to create a validation list in excel
How to create a validation list in excel
Danny Wong
 
Validation
ValidationValidation
Validation
COGS Presentations
 
Wpf Validation
Wpf ValidationWpf Validation
Wpf Validation
RookieOne
 
Annotation-Based Spring Portlet MVC
Annotation-Based Spring Portlet MVCAnnotation-Based Spring Portlet MVC
Annotation-Based Spring Portlet MVC
John Lewis
 
Data validation - Excel
Data validation - ExcelData validation - Excel
Data validation - Excel
Yi Chiao Cheng
 
Model-Based Simulation of Legal Requirements: Experience from Tax Policy Simu...
Model-Based Simulation of Legal Requirements: Experience from Tax Policy Simu...Model-Based Simulation of Legal Requirements: Experience from Tax Policy Simu...
Model-Based Simulation of Legal Requirements: Experience from Tax Policy Simu...
Software Verification and Validation Laboratory - Software Verification and Validation Laboratory
 
Application Logging Good Bad Ugly ... Beautiful?
Application Logging Good Bad Ugly ... Beautiful?Application Logging Good Bad Ugly ... Beautiful?
Application Logging Good Bad Ugly ... Beautiful?
Anton Chuvakin
 
Validation verification
Validation  verificationValidation  verification
Validation verification
khair20
 
Verfication and validation of simulation models
Verfication and validation of simulation modelsVerfication and validation of simulation models
Verfication and validation of simulation models
De La Salle University-Manila
 
Types of Data Validation
Types of Data ValidationTypes of Data Validation
Types of Data Validation
Metric Fox
 
Validation and Verification
Validation and VerificationValidation and Verification
Validation and Verification
mrmwood
 
verification and validation
verification and validationverification and validation
verification and validation
Dinesh Pasi
 
Audit logs for Security and Compliance
Audit logs for Security and ComplianceAudit logs for Security and Compliance
Audit logs for Security and Compliance
Anton Chuvakin
 
Dynamic Data Validation Lists
Dynamic Data Validation ListsDynamic Data Validation Lists
Dynamic Data Validation Lists
Marc Rivait, PMP
 
How to create a validation list in excel
How to create a validation list in excelHow to create a validation list in excel
How to create a validation list in excel
Danny Wong
 
Wpf Validation
Wpf ValidationWpf Validation
Wpf Validation
RookieOne
 
Annotation-Based Spring Portlet MVC
Annotation-Based Spring Portlet MVCAnnotation-Based Spring Portlet MVC
Annotation-Based Spring Portlet MVC
John Lewis
 
Data validation - Excel
Data validation - ExcelData validation - Excel
Data validation - Excel
Yi Chiao Cheng
 
Application Logging Good Bad Ugly ... Beautiful?
Application Logging Good Bad Ugly ... Beautiful?Application Logging Good Bad Ugly ... Beautiful?
Application Logging Good Bad Ugly ... Beautiful?
Anton Chuvakin
 
Validation verification
Validation  verificationValidation  verification
Validation verification
khair20
 
Ad

Similar to Data validation in web applications (20)

HTML5 Mullet: Forms & Input Validation
HTML5 Mullet: Forms & Input ValidationHTML5 Mullet: Forms & Input Validation
HTML5 Mullet: Forms & Input Validation
Todd Anglin
 
Validating forms (and more) with the HTML5 pattern attribute
Validating forms (and more) with the HTML5 pattern attributeValidating forms (and more) with the HTML5 pattern attribute
Validating forms (and more) with the HTML5 pattern attribute
cliener
 
HTML5 Forms OF DOOM
HTML5 Forms OF DOOMHTML5 Forms OF DOOM
HTML5 Forms OF DOOM
Stephanie Hobson
 
Moving to the client - HTML5 is here
Moving to the client - HTML5 is here Moving to the client - HTML5 is here
Moving to the client - HTML5 is here
Christian Heilmann
 
Web Forms People Don't Hate
Web Forms People Don't HateWeb Forms People Don't Hate
Web Forms People Don't Hate
cliener
 
Building & Breaking Web Forms with Quaid-JS
Building & Breaking Web Forms with Quaid-JSBuilding & Breaking Web Forms with Quaid-JS
Building & Breaking Web Forms with Quaid-JS
cliener
 
GCSECS-DefensiveDesign.pptx
GCSECS-DefensiveDesign.pptxGCSECS-DefensiveDesign.pptx
GCSECS-DefensiveDesign.pptx
azida3
 
JavaScript - Chapter 14 - Form Handling
 JavaScript - Chapter 14 - Form Handling   JavaScript - Chapter 14 - Form Handling
JavaScript - Chapter 14 - Form Handling
WebStackAcademy
 
HTML5 workshop, forms
HTML5 workshop, formsHTML5 workshop, forms
HTML5 workshop, forms
Robert Nyman
 
HTML5 Forms - KISS time - Fronteers
HTML5 Forms - KISS time - FronteersHTML5 Forms - KISS time - Fronteers
HTML5 Forms - KISS time - Fronteers
Robert Nyman
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
EnghamzaKhalailah
 
HTML5 Form Validation
HTML5 Form ValidationHTML5 Form Validation
HTML5 Form Validation
Ian Oxley
 
Html5 inputs
Html5 inputsHtml5 inputs
Html5 inputs
Chris Love
 
04.02.JS_SimpleValidation.pdf
04.02.JS_SimpleValidation.pdf04.02.JS_SimpleValidation.pdf
04.02.JS_SimpleValidation.pdf
flutterhub
 
Hassliebe Onlineformulare, Enhance your Form for better UX
Hassliebe Onlineformulare, Enhance your Form for better UXHassliebe Onlineformulare, Enhance your Form for better UX
Hassliebe Onlineformulare, Enhance your Form for better UX
Peter Rozek
 
Bad Form @ JSConf Asia 2014
Bad Form @ JSConf Asia 2014Bad Form @ JSConf Asia 2014
Bad Form @ JSConf Asia 2014
cliener
 
form_validation_with_html5
form_validation_with_html5form_validation_with_html5
form_validation_with_html5
Ryan Williams
 
Input validation errors
Input validation errorsInput validation errors
Input validation errors
manoharparakh
 
Accessible dynamic forms
Accessible dynamic formsAccessible dynamic forms
Accessible dynamic forms
Dylan Barrell
 
Design better forms – Mobile UX London
Design better forms – Mobile UX LondonDesign better forms – Mobile UX London
Design better forms – Mobile UX London
Sjors Timmer
 
HTML5 Mullet: Forms & Input Validation
HTML5 Mullet: Forms & Input ValidationHTML5 Mullet: Forms & Input Validation
HTML5 Mullet: Forms & Input Validation
Todd Anglin
 
Validating forms (and more) with the HTML5 pattern attribute
Validating forms (and more) with the HTML5 pattern attributeValidating forms (and more) with the HTML5 pattern attribute
Validating forms (and more) with the HTML5 pattern attribute
cliener
 
Moving to the client - HTML5 is here
Moving to the client - HTML5 is here Moving to the client - HTML5 is here
Moving to the client - HTML5 is here
Christian Heilmann
 
Web Forms People Don't Hate
Web Forms People Don't HateWeb Forms People Don't Hate
Web Forms People Don't Hate
cliener
 
Building & Breaking Web Forms with Quaid-JS
Building & Breaking Web Forms with Quaid-JSBuilding & Breaking Web Forms with Quaid-JS
Building & Breaking Web Forms with Quaid-JS
cliener
 
GCSECS-DefensiveDesign.pptx
GCSECS-DefensiveDesign.pptxGCSECS-DefensiveDesign.pptx
GCSECS-DefensiveDesign.pptx
azida3
 
JavaScript - Chapter 14 - Form Handling
 JavaScript - Chapter 14 - Form Handling   JavaScript - Chapter 14 - Form Handling
JavaScript - Chapter 14 - Form Handling
WebStackAcademy
 
HTML5 workshop, forms
HTML5 workshop, formsHTML5 workshop, forms
HTML5 workshop, forms
Robert Nyman
 
HTML5 Forms - KISS time - Fronteers
HTML5 Forms - KISS time - FronteersHTML5 Forms - KISS time - Fronteers
HTML5 Forms - KISS time - Fronteers
Robert Nyman
 
HTML5 Form Validation
HTML5 Form ValidationHTML5 Form Validation
HTML5 Form Validation
Ian Oxley
 
04.02.JS_SimpleValidation.pdf
04.02.JS_SimpleValidation.pdf04.02.JS_SimpleValidation.pdf
04.02.JS_SimpleValidation.pdf
flutterhub
 
Hassliebe Onlineformulare, Enhance your Form for better UX
Hassliebe Onlineformulare, Enhance your Form for better UXHassliebe Onlineformulare, Enhance your Form for better UX
Hassliebe Onlineformulare, Enhance your Form for better UX
Peter Rozek
 
Bad Form @ JSConf Asia 2014
Bad Form @ JSConf Asia 2014Bad Form @ JSConf Asia 2014
Bad Form @ JSConf Asia 2014
cliener
 
form_validation_with_html5
form_validation_with_html5form_validation_with_html5
form_validation_with_html5
Ryan Williams
 
Input validation errors
Input validation errorsInput validation errors
Input validation errors
manoharparakh
 
Accessible dynamic forms
Accessible dynamic formsAccessible dynamic forms
Accessible dynamic forms
Dylan Barrell
 
Design better forms – Mobile UX London
Design better forms – Mobile UX LondonDesign better forms – Mobile UX London
Design better forms – Mobile UX London
Sjors Timmer
 
Ad

Data validation in web applications

  • 1. Data Validation in Web ApplicationsWelcome to:
  • 2. Hi! I’m Scott KirklandSlinging code @ UCDavis for 8 yearsCurrently Sr. Application Architect for the College Of Agricultural and Environmental Sciences Dean’s OfficeOpen source coderhttps://github.com/srkirklandMvcHtml5, Data Annotations Extensions, ITSecuritySymposiumhttps://github.com/ucdavisUCDArch, Web ApplicationsCo-founded the local .NET User Group
  • 3. Data Validation in Web ApplicationsWelcome to:
  • 4. The most common web application security weakness is the failure to properly validate input from the client or environment. - OWASP[1]
  • 6. Aka: Trust No One Data
  • 9. Input Validation in Web FormsEnsure user supplied data is Strongly typedCorrect syntaxWithin length boundariesContains only permitted charactersOr that numbers are correctly signed and within range boundariesIs “business rule correct”
  • 10. Client Side ValidationValidate data on the client firstProvides better feedback to the end userMakes your site feel more responsiveAlways validate on server-side as well!
  • 11. JavaScript Validation“Current” solution, useful & widely supported (Probably about 95%)Any JavaScript errors and validation disappearsFairly difficult to implement, though libraries help[3]
  • 12. JavaScript Validation: EmailIs this a good email regex?\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\bYes, except when it isn’tNon-english, some TLDs not covered, no special charsHow about this (RFC 2822)?(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])Allows some crazy stuff, like \@scott\@[email protected]
  • 14. HTML5 Input ValidationTwo major form validation innovationsNew Input TypesConstraint Validation
  • 15. HTML5 Input TypesNew input types were added to augment<input type=“text” />
  • 17. HTML5 Input TypesGives semantic meaning to your formsEnable behaviors based on input type
  • 19. HTML5 Input TypesSo, that was pretty coolSimply changing input types can add basic validationBenefits go beyond validationAdditive only – no drawbacks
  • 20. HTML5 Input Types<input type=“email” /><input type=“url” />
  • 21. HTML5 Input Types<input type=“tel” /><input type=“number” />
  • 23. HTML5 Constraint ValidationRequired<input type=“text” required />MaxLength<input type=“text” maxlength=“10” />Pattern<input type=“text” pattern=“[0-9]{5}” />
  • 25. Of course, this only works in HTML5 capable browsersOlder browsers will ignore these new attributesWith JavaScript you can “Polyfill” for “regressive” enhancement
  • 27. PolyfillA polyfill, or polyfiller, is a piece of code (or plugin) that provides the technology that you, the developer, expect the browser to provide nativelyGenerally, you test the browser for a feature. If it is not present natively, use JavaScript to add the feature
  • 28. Develop for tomorrow… today!Great library called Modernizrhttp://www.modernizr.com/Helps with feature detection & media queriesAllows older browsers to work with Html5 elementsMuch more
  • 31. Use the new input types They may do data validation for youMake your users happy (iOS & more)They will keep getting betterNative experience
  • 32. Constraint ValidationUseful for “first line of defense” or backupYou should continue to use JavaScript for client validation
  • 33. Recap: Validating Web FormsMakes the experience better for your usersResults in better, more reliable dataFirst line of defense against a plethora of vulnerabilities
  • 35. Thanks for listeningI’m Scott KirklandEmail: [email protected]: http://weblogs.asp.net/srkirkland/GitHub:Personal: https://github.com/srkirkland/UCDavis: https://github.com/ucdavis/Slides and demo:https://github.com/srkirkland/ITSecuritySymposium

Editor's Notes

  • #3: Scott Kirkland has been writing web applications at UC Davis for eight years, currently in his capacity as Senior Application Architect for the College of Agricultural and Environmental Sciences Dean&apos;s Office.  Scott has also created and released several open-source projects including the architectural framework UCDArch (https://github.com/ucdavis/UCDArch) for developing secure ASP.NET MVC applications at UC Davis, as well as DataAnnotationsExtensions (http://dataannotationsextensions.org) for extending client and server validation in .NET applications.  Scott enjoys educating other developers and co-founded the UC Davis .NET User Group and recently led a three day workshop about ASP.NET MVC for several dozen UC Davis developers.
  • #5: The most common web application security weakness is the failure to properly validate input from the client or environment. This weakness leads to almost all of the major vulnerabilities in applications, such as Interpreter Injection, locale/Unicode attacks, file system attacks and buffer overflows. Data from the client should never be trusted for the client has every possibility to tamper with the data.
  • #8: Possibly include Sql Injection, Xss,etc
  • #9: Possibly include Xss, depending on time
  • #10: https://www.owasp.org/index.php/Data_Validation#Data_Validation_and_Interpreter_Injection
  • #11: Might decrease bandwidth
  • #12: “Current” because it isn’t really going to go anywhere, but it is “all we have”Most frameworks don’t come with much in the way of help, and when they do its complex and they contain lots of messy JavaScript.
  • #13: May not want to use this slide…
  • #14: Html5 to the rescue?
  • #16: Type=“text” but what kind of text? HTML5 goes further
  • #17: Search – assistive technologies like screen reader
  • #18: Type=“text” but what kind of text? HTML5 goes further
  • #19: &lt;input type=&apos;text&apos; /&gt; Show output, looks like regular text box&lt;input type=&apos;email&apos; /&gt; Show output, looks the same, but show how iphone and opera treat it differently. Also, type=&apos;email&apos; validates email!Same thing with url &lt;input type=&apos;url&apos; /&gt;Same with number &lt;input type=&apos;number&apos; /&gt; Even can do min/max with number
  • #20: You could style them independently, different sizes for email, etc
  • #21: Also tel you get the keypad, number you get a special input tooScreenshots from http://diveintohtml5.org/forms.html
  • #22: Also tel you get the keypad, number you get a special input tooScreenshots from http://diveintohtml5.org/forms.html
  • #25: http://miketaylr.com/code/input-type-attr.htmlShow in FF, Chrome, Explorer (nothing breaks with explorer, completely additive)
  • #27: Html5 validation constraints
  • #28: http://remysharp.com/2010/10/08/what-is-a-polyfill/
  • #29: Widely used: Google, Twitter, Microsoft (ships with MVC)
  • #30: http://miketaylr.com/code/input-type-attr.htmlShow in FF, Chrome, Explorer (nothing breaks with explorer, completely additive)
  • #32: Really, no downside
  • #33: Really,no downside