Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a warning about expensive pattern constraints #837

Merged
merged 1 commit into from
Jun 17, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions docs/source/1.0/spec/core/constraint-traits.rst
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,14 @@ conditionals, directives, recursion, lookahead, look-behind, back-references,
and look-around in order to ensure maximum compatibility across programming
languages.

.. warning::

Pattern values should be chosen with care, as regex evaluation can be
expensive. Regular expressions SHOULD be tested against a range of
potentially malformed inputs to ensure that the execution of the regular
expression match does not lead to a potential denial of service. See
`OWASP Regular expression Denial of Service`_ for more information.

.. important::

The ``pattern`` trait does not implicitly add a leading ``^`` or trailing
Expand Down Expand Up @@ -674,3 +682,4 @@ minimum will be ``7``, and the maximum ``12``.

.. _ECMA 262 regular expression dialect: https://www.ecma-international.org/ecma-262/8.0/index.html#sec-patterns
.. _CommonMark: https://spec.commonmark.org/
.. _OWASP Regular expression Denial of Service: https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS