Interface AnalysisOptions

Hierarchy

  • AnalysisOptions

Properties

assumeRejectingSuffix?: boolean

Whether the analyser is allowed to assume that a rejecting suffix can always be found.

To exploit ambiguity in quantifiers, it is necessary to force the regex engine to go through all possible paths. This can only be done by finding a suffix that causes the exploitable part of analysed regex to reject the input string. If such a suffix cannot be found, the regex is not exploitable.

If this option is set to false, a heuristic will be used to determine whether a rejecting suffix can be found. This will prevent reporting false positives - non-exploitable quantifiers.

The heuristic makes the assumption that the regex is used as is - that the regex is not modified or used to construct other regexes. If this assumption is not met, the heuristic will prevent the reporting of potential true positives.

By setting this option to true, the heuristic will not be used and all reports are assumed to be true positives.

Default

false
maxReports?: number

The maximum number of reports to be returned.

Default

Infinity
reportTypes?: Partial<Record<"Self" | "Trade" | "Move", boolean>>

A record of allowed report types. All reports of a type that is mapped to false will be omitted.

By default, all report types are allowed.