Security Implications of WCAG 2.0
The Web Content Accessibility Guidelines 2.0 (WCAG 2.0) have created some challenges for those who wish to meet the criteria and also develop to high web security standards.
The WCAG 2.0 became a full W3C Recommendation in December 2008 (see Accessibility and Security Roundup). The WCAG 2.0 contain much more related to transactional systems and there are many criteria which existing development frameworks are unlikely to meet. Inflexible generic methods for navigation, data entry and validation will not always be possible—the context is so important in consideration of accessibility.
The four principals (perceivable, operable, understandable and robust) comprise 12 guidelines and associated testable success criteria. The most difficult issues are related to the highest level of conformance. There are still three conformance levels—A (lowest), AA, and AAA (highest).
The Techniques for WCAG 2.0 are worth reading as these give a guide to developers as how some of the success criteria could be achieved and checked.
Session management
The following are of particular interest:
- G5: Allowing users to complete an activity without any time limit
- G105: Saving data so that it can be used after a user re-authenticates
- G133: Providing a checkbox on the first page of a multipart form that allows users to ask for longer session time limit or no session time limit
- G180: Providing the user with a means to set the time limit to 10 times the default time limit
- G181: Encoding user data as hidden or encrypted data in a re-authorization page
- G198: Providing a way for the user to turn the time limit off
- SCR16: Providing a script that warns the user a time limit is about to expire
Session management where authenticated users are authorised to perform certain actions is a fundamental building block of web application security. There are potential issues here if tokens are not expired on time out and log out. This is a particularly important issue on shared computers.
Data entry
And for data entry and validation, the following techniques have security implications:
- G89: Providing expected data format and example
- G155: Providing a checkbox in addition to a submit button
- G98: Providing the ability for the user to review and correct answers before submitting
- G139: Creating a mechanism that allows users to jump to errors
- G177: Providing suggested correction text
- G99: Providing the ability to recover deleted information
- G75: Providing a mechanism to postpone any updating of content
- G76: Providing a mechanism to request an update of the content instead of updating automatically
- SCR18: Providing client-side validation and alert
Getting data entry, checking, confirmation and validation correct is key, and I like the empahsis being placed on this aspect, but there are dangers in poorly thought-out implementations. More accessible web applications are better for everyone—not just people with less experience, knowledge or ability.
Final thoughts
Overall, WCAG 2.0 increases the complexity of specification, design, development and testing of web applications. Many of the techniques could introduce security vulnerabilities, and the listed techniques could be used to develop misuse test cases.
I'm pleased to see in one of the script examples:
This example is limited to client-side scripting, and should be backed up with server-side validation
Very true.
Update 19th May 2009: See also What's the Scope for Accessibility Testing? and Can An Accessible Web Application Be Secure? concerning my presentation at OWASP AppSec EU09.
Posted on: 09 January 2009 at 09:01 hrs
