DRAFT Web Application Security Working Group Charter
The mission of the Web Application Security Working Group is to to develop mechanisms and best practices which improve the security of Web Applications.
This proposed charter is available on GitHub. Feel free to raise issues.
Charter Status | See the group status page and detailed change history. |
---|---|
Start date | [dd monthname yyyy] (date of the "Call for Participation", when the charter is approved) |
End date | [dd monthname yyyy] (Start date + 2 years) |
Chairs | Dan Veditz (Mozilla), Mike West (Google) |
Team Contacts | Simone Onofri (0.20 FTE) |
Meeting Schedule |
Teleconferences: Monthly or as needed.
Face-to-face: we will meet during the W3C's annual Technical Plenary week; additional face-to-face meetings may be scheduled by consent of the participants, usually no more than 3 per year. |
Motivation and Background
Modern web applications are composed of many parts and technologies, creating a complex tapestry of resource and data flows between origins. This complexity, as well as the historically coarse-grained nature of the security boundaries and principals defined for such applications, makes web applications very difficult to secure. At the same time, securing these applications is ever more critical, as the web becomes more and more critical to users' lives.
Scope
This group focuses on the client side of the problem, designing mechanisms user agents can provide to web developers which mitigate the risk of common web attacks, and reduce the surface area that applications expose to attackers. Areas of scope for this working group include:
- Vulnerability Mitigation
-
Sufficiently complex applications involve handling input from untrusted sources in ways that can lead to unexpected code execution, data manipulation, or exfiltration. This Working Group will design mechanisms which reduce the scope, exploitability, and impact of common vulnerabilities and vulnerability classes in web applications (e.g. cross-site scripting, clickjacking, and so on).
- Attack Surface Reduction
-
The Working Group will design mechanisms which prevent certain categories of threat by reducing the privilege of a given context. This effort will result in tools developers can opt-into which:
- Allow applications to restrict or forbid potentially dangerous features which they do not intend to use
- Govern information and content flows into and out of an application
- Allow applications to isolate themselves from other origins
- Reduce the privilege of potentially untrusted content and allow it to be interacted with more safely
- Ensure that application content modification may be detected and prevented
- Replace or augment error-prone APIs in the browser with safer alternatives (e.g. sanitization, strict contextual autoescaping, validation and encoding requirements, and so on)
- Enforce requirements on content which loads in a given context (e.g. transport security, embedder/embedee constraints, CORS, etc.)
To the extent possible, these restrictions may also be imposed by default to uniformly reduce risk at scale, or may be positioned as prerequisites to some capability or set of capabilities applications may wish to exercise.
- Manageability
-
Given the ad-hoc nature in which many important security features of the Web have evolved, providing uniformly secure experiences to users is difficult for developers. The Working Group will document and create uniform experiences for several areas of major utility, including:
- Providing hinting and direct support for credential managers, whether integrated into the user-agent or 3rd-party, to assist users in managing the complexities of secure passwords
- Application awareness of features which may require explicit user permission to enable.
- The Web Security Model
-
The WG may be called on to advise other WGs or the TAG on the fundamental security model of the Web Platform. In doing so, the WG may produce Recommendations for addressing legacy issues with the model (e.g. deprecations and removals), as well as improvements to the baseline it sets (e.g. mitigating cross-origin data leaks or side-channel attacks).
- WebCrypto
- The WG may adopt well-supported proposals from incubation for maintenance of the Web Cryptography API, such as secure curves.
In addition to developing Recommendation Track documents in support of these goals, the Web Application Security Working Group may provide review of specifications from other Working Groups, in particular as these specifications touch on chartered deliverables of this group (in particular CSP), or the Web security model, and may also develop non-normative documents in support of Web security, such as developer and user guides for its normative specifications.
Deliverables
Updated document status is available on the group publication status page.
Draft state indicates the state of the deliverable at the time of the charter approval. The Working Group intends to publish the latest state of their work as Candidate Recommendation (with Snapshots) and does not intend to advance their documents to Recommendation.
Normative Specifications
The Working Group will deliver the following W3C normative specifications:
- Fetch Metadata Request Headers
-
Defines a set of Fetch metadata request headers that aim to provide servers with enough information to make a priori decisions about whether or not to service a request based on the way it was made, and the context in which it will be used.
Draft state: Working Draft
Expected completion: will be incorporated into the WHATWG Fetch spec
Adopted Draft: 31 October 2023
Exclusion Draft: 27 June 2019
Exclusion Draft Charter: 2019 charter
- A Well-Known URL for Changing Passwords
-
A well-known URL that sites can use to make their change password forms discoverable by tools. This simple affordance provides a way for software to help the user find the way to change their password.
Draft state: Editor's Draft
Adopted Draft: 27 September 2022
Exclusion Draft: 27 September 2022
Exclusion Draft Charter: 2022 charter
- Passkey Endpoints Well-Known URL
-
Similar to the well-known URLs for changing passwords, this proposes a well-known URL that sites can use to make their passkeys, the FIDO2 and WebAuthn credentials, discoverable by tools.
Draft state: Explainer
- Trusted Types
-
An API that allows applications to lock down powerful APIs to only accept non-spoofable, typed values in place of strings to prevent vulnerabilities caused by using these APIs with attacker-controlled inputs.
Draft state: Working Draft
Adopted Draft: 27 September 2022
Exclusion Draft: 27 September 2022
Exclusion Draft Charter: 2022 charter
- Content Security Policy Level 3
-
A policy language intended to enable web designers or server administrators to declare a security policy for a web resource. The goal of this specification is to reduce attack surface by specifying overall rules for what content may or may not do, thus preventing violation of security assumptions by attackers who are able to partially manipulate that content. Content Security Policy (CSP) Level 3 succeeds CSP2, which is now a Recommendation.
Draft state: Working Draft
Adopted Draft: 15 January 2024
Exclusion Draft: 26 January 2016
Exclusion Draft Charter: 2015 charter
- Mixed Content
-
Guidance for user agents dealing with resources loaded over insecure channels in a secure web application. Use cases includes standard behaviors for user agents to follow when encountering insecure resource loads in a secure context.
Draft state: Candidate Recommendation
Adopted Draft: 23 February 2023
Exclusion Draft: 2 August 2016
Exclusion Draft Charter: 2015 charter
- Upgrade Insecure Requests
-
A mechanism to assist sites migrating from HTTP to HTTPS by allowing them to assert to a user agent that they intend a site to load only secure resources, and that insecure URLs ought to be treated as though they had been replaced with secure URLs.
Draft state: Candidate Recommendation
Adopted Draft: 8 October 2015
Exclusion Draft: 8 October 2015
Exclusion Draft Charter: 2015 charter
- Secure Contexts
-
A definition for "secure contexts" allowing user agent implementers and specification authors to enable certain features only when certain minimum standards of authentication and confidentiality are met.
Draft state: Candidate Recommendation
Adopted Draft: 10 November 2023
Exclusion Draft: 15 September 2016
Exclusion Draft Charter: 2015 charter
- Clear Site Data
-
An imperative mechanism which allows web developers to instruct a user agent to clear a site’s locally stored data related to a host.
Draft state: Working Draft
Adopted Draft: 30 November 2017
Exclusion Draft: 4 August 2015
Exclusion Draft Charter: 2015 charter
- Referrer Policy
-
A header and meta tag allowing resource authors to specify a policy for the values sent as part of the HTTP Referer (sic) header. Use cases include making this policy more restrictive to protect applications which include security capability tokens in the URL, or allowing more permissive sharing of referrer information from secure to insecure origins to remove barriers which today prevent applications from moving to secure origins.
Draft state: Candidate Recommendation
Adopted Draft: 26 January 2017
Exclusion Draft: 26 January 2017
Exclusion Draft Charter: 2015 charter
- Credential Management API
-
A standardized API to address use cases related to assisted management of user credentials, including traditional username/password pairs, username/federated identity provider pairs. The API should allow for explicit and interoperable imperative mechanisms for use and lifecycle management of these common credential types.
Draft state: Working Draft
Adopted Draft: 17 January 2019
Exclusion Draft: 30 April 2015
Exclusion Draft Charter: 2015 charter
- Permissions API
-
An API to allow web applications to be aware of the status of a given permission, to know whether it is granted, denied, or if the user will be asked whether the permission should be granted.
This document will also serve as the registry of permissions of the web platform, which includes both policy-controlled features and powerful features.
Draft state: Working Draft
Adopted Draft: 16 January 2024
Exclusion Draft: 7 April 2015
Exclusion Draft Charter: 2015 charter
- Permissions Policy
A mechanism that allows developers to selectively enable and disable use of various browser features and APIs. Formerly known as Feature Policy.
Draft state: Working Draft
Adopted Draft: 18 December 2023
Exclusion Draft: 16 April 2019
Exclusion Draft Charter: 2019 charter
- Document Policy
A framework for designing configurable features as part of the web platform, and for allowing web developers to configure those features as part of their site deployment.
Draft state: Adopted from WICG
The Working Group will also maintain:
- Subresource Integrity
This specification defines a mechanism by which user agents may verify that a fetched resource has been delivered without unexpected manipulation.
Draft state: Recommendation
Depending on the incubation progress, interest from multiple implementers, and the consensus of the Group participants, the Group may also produce Recommendation-track specifications for the following documents:
- Source Code Transparency
- The goal would be to have a mechanism to verify that the source code of a web app appears in some transparency log (similar to Certificate Transparency), to allow auditors to check the source code, and make it impossible to surreptitiously serve a malicious version of a web app to one user, for example.
- Securer Contexts
- Securer context is a proposal to extend the threat model beyond encrypting the transport layer, and bring attention to application layer threats that rely on either injection or insufficient isolation.
Other Deliverables
- Post-Spectre Web Development
A description of Spectre-type attacks as well as mitigations, targeted at web developers.
Draft state: Working Draft
- Content Security Policy: Embedded Enforcement
-
A mechanism by which a web page can embed a nested browsing context if and only if it agrees to enforce a particular set of restrictions upon itself.
Previously published as a Working Draft, CSP:EE will be repubished as a WG note, and work will continue in WICG.
Draft state: Working Draft
Exclusion Draft: 15 December 2015
Exclusion Draft Charter: 2015 charter
- Security and privacy model for cookies
-
A Group Note to outline the desired security and privacy model for cookies post third-party cookie deprecation, including cookie behaviors by default and mechanisms for reenabling them in third-party contexts (SAA, user controls, etc).
- Permissions best practices
-
A Group Note to outline some of the best practices when requesting permissions from users and adding new permission prompts to the Web platform.
Other non-normative documents may be created such as:
- Use case and requirement documents;
- Test suite and implementation report for the specification;
- Primer or Best Practice documents to support web developers when designing applications.
Success Criteria
There should be testing plans for each specification, starting from the earliest drafts.
To promote interoperability, all changes made to specifications in Candidate Recommendation or to features that have deployed implementations should have tests. Testing efforts should be conducted via the Web Platform Tests project.
Each specification should contain sections detailing all known security and privacy implications for implementers, Web authors, and end users.
Each specification should contain a section on accessibility that describes the benefits and impacts, including ways specification features can be used to address them, and recommendations for maximising accessibility in implementations.
This Working Group expects to follow the TAG Web Platform Design Principles.
All new features should be supported by at least two intents to implement before being incorporated in the specification.
Coordination
For all specifications, this Working Group will seek horizontal review for accessibility, internationalization, privacy, and security with the relevant Working and Interest Groups, and with the TAG. Invitation for review must be issued during each major standards-track document transition, including FPWD. The Working Group is encouraged to engage collaboratively with the horizontal review groups throughout development of each specification. The Working Group is advised to seek a review at least 3 months before first entering CR and is encouraged to proactively notify the horizontal review groups when major changes occur in a specification following a review.
Additional technical coordination with the following Groups will be made, per the W3C Process Document:
W3C Groups
- Web Authentication Working Group
- The WG will liaise with the Web Authentication WG on Credential Management.
- Devices and Sensors Working Group
- The WG may work with the Devices and Sensors WG on the security of their client-side APIs.
- Privacy Interest Group
- The work on Security and privacy model for cookies, Permissions best practices and APIs, and End-to-End Encryption email should be coordinated with the Privacy group.
External Organizations
- Web Hypertext Application Technology Working Group (WHATWG)
-
Specifications such as CSP provide inputs into the algorithms defined by, e.g., the
Fetch specification, and portions of CSP and Mixed Content may be defined in terms of
Fetch. The Working Group should also pay attention to work, such as Page Embedded Permission Control (PEPC)
and Sandbox
allow-unique-origin
. - Internet Engineering Task Force
- The IETF is responsible for defining robust and secure protocols for Internet functionality, in particular HTTP. The Working Group should coordinate protocol-related work (e.g. cookies) with the appropriate IETF WGs.
Participation
To be successful, this Working Group is expected to have 10 or more active participants for its duration, including representatives from the key implementors of this specification, and active Editors and Test Leads for each specification. The Chairs, specification Editors, and Test Leads are expected to contribute half of a working day per week towards the Working Group. There is no minimum requirement for other Participants.
The group encourages questions, comments and issues on its public mailing lists and document repositories, as described in Communication.
The group also welcomes non-Members to contribute technical submissions for consideration upon their agreement to the terms of the W3C Patent Policy.
Participants in the group are required (by the W3C Process) to follow the W3C Code of Conduct.
Communication
Technical discussions for this Working Group are conducted in public: the meeting minutes from teleconference and face-to-face meetings will be archived for public review, and technical discussions and issue tracking will be conducted in a manner that can be both read and written to by the general public. Working Drafts and Editor's Drafts of specifications will be developed in public repositories and may permit direct public contribution requests. The meetings themselves are not open to public participation, however.
Information about the group (including details about deliverables, issues, actions, status, participants, and meetings) will be available from the Web Application Security Working Group home page.
Most Web Application Security Working Group teleconferences will focus on discussion of particular specifications, and will be conducted on an as-needed basis.
This group primarily conducts its technical work on the public mailing list public-webappsec@w3.org (archive) and in issues in GitHub repositories. The public is invited to review, discuss and contribute to this work.
Decision Policy
This group will seek to make decisions through consensus and due process, per the W3C Process Document (section 5.2.1, Consensus). Typically, an editor or other participant makes an initial proposal, which is then refined in discussion with members of the group and other reviewers, and consensus emerges with little formal voting being required.
However, if a decision is necessary for timely progress and consensus is not achieved after careful consideration of the range of views presented, the Chairs may call for a group vote and record a decision along with any objections.
To afford asynchronous decisions and organizational deliberation, any resolution (including publication decisions) taken in a face-to-face meeting or teleconference will be considered provisional. A call for consensus (CfC) will be issued for all resolutions (for example, via email, GitHub issue or web-based survey), with a response period from 7 to 10 working days, depending on the chair's evaluation of the group consensus on the issue. If no objections are raised by the end of the response period, the resolution will be considered to have consensus as a resolution of the Working Group.
All decisions made by the group should be considered resolved unless and until new information becomes available or unless reopened at the discretion of the Chairs.
This charter is written in accordance with the W3C Process Document (Section 5.2.3, Deciding by Vote) and includes no voting procedures beyond what the Process Document requires.
Patent Policy
This Working Group operates under the W3C Patent Policy (Version of 15 September 2020). To promote the widest adoption of Web standards, W3C seeks to issue Web specifications that can be implemented, according to this policy, on a Royalty-Free basis. For more information about disclosure obligations for this group, please see the licensing information.
Licensing
This Working Group will use the W3C Software and Document license for all its deliverables.
About this Charter
This charter has been created according to section 3.4 of the Process Document. In the event of a conflict between this document or the provisions of any charter and the W3C Process, the W3C Process shall take precedence.
Charter History
The following table lists details of all changes from the initial charter, per the W3C Process Document (section 4.3, Advisory Committee Review of a Charter):
Charter Period | Start Date | End Date | Changes |
---|---|---|---|
Initial Charter | 7 September 2011 | 31 March 2013 | Contains Content Security Policy (CSP), Secure Cross-Domain Resource Sharing, Secure Cross-Domain Framing. |
Rechartered | 24 October 2013 | 30 September 2014 |
Added CSP 1.1, Secure Mixed Content, Lightweight Isolated / Safe Content. Secure Cross-Domain Resource Sharing becomes CORS. Secure Cross-Domain Framing becomes User Interface Security Directives for Content Security Policy |
Charter Extension | 9 February 2015 | 31 March 2015 | none |
Rechartered | 18 March 2015 | 31 December 2016 |
Added CSP2, Content Security Policy Pinning, Upgrade Insecure Requests, Privileged Contexts, Subresource Integrity, Referrer Policy, Credential Management API, Suborigin Namespaces, Confinement with Origin Web Labels, Entry Point Regulation for Web Applications, Permissions API. Dropped CORS, Lightweight Isolated / Safe Content. Added WHATWG liaison for Fetch. |
Charter Extension | 22 December 2016 | 31 March 2017 | none |
Rechartered | 27 March 2017 | 31 December 2018 |
Added CSP3, Content Security Policy: Embedded Enforcement, User Interface Security and the Visibility API, Clear Site Data, Subresource Integrity Level 2, Suborigins, Site-Wide Policy Dropped Content Security Policy Pinning, User Interface Security Directives for Content Security Policy and Entry Point Regulation for Web Applications. Privileged Contexts becomes Secure Contexts. |
Charter Extension | 22 December 2018 | 31 March 2019 | none |
Rechartered | 31 March 2019 | 31 March 2021 |
Added Feature Policy Dropped User Interface Security and the Visibility API, Confinement with Origin Web Labels Origin-Wide Policy becomes Site-Wide Policy |
Charter Extension | 31 March 2021 | 30 June 2021 | none |
Rechartered | 09 June 2022 | 31 July 2023 |
Added Document Policy, Trusted Types, Change Password URL, and Fetch Metadata. Removed SRI2, Suborigins, and Origin Policy, none of which were ever published as WG WDs. Moving CSP:EE back to WICG. Publishing a last version (for now) as a WG Note. Moved most specs to snapshot (evergreen) publication. Updated scope text, reflecting a changing world. Allow WG to do WebCrypto maintenance. Updated charter consistent with modern templates. Added Mike Smith as an additional team contact. |
Proposed | TDB | TDB +2 |
Moved all specs to snapshot (evergreen) publication. Added new Rec track deliverables: Source Code Transparency, Passkey Endpoints Well-Known URL, Securer Contexts. Added back missing Rec track deliverable: Subresource Integrity Added Note track deliverables: Security and privacy model for cookies, Permissions best practices Added Privacy Interest Group explicitely in coordination Added IETF in coordination |
Change log
Changes to this document are documented in this section.