\DevOwl\HeadlessContentBlocker\plugins\scannerRule

Describe scan options for a specific expression.

Summary

Methods
Properties
Constants
__construct()
urlMatchesQueryArgumentValidations()
getExpression()
getAssignedToGroups()
getQueryArgs()
No public properties found
No constants found
parseUrlQueryEncodedSafe()
No protected properties found
N/A
No private methods found
$expression
$assignedToGroups
$queryArgs
N/A

Properties

$expression

$expression :

Type

$assignedToGroups

$assignedToGroups :null|array<mixed,string>

Group name(s).

Type

null|array<mixed,string>

$queryArgs

$queryArgs :

A list of query argument validations. Example:

[
     [
         'queryArg' => 'id',
         'isOptional' => true,
         'regexp' => '/^UA-/'
     ]
]

Type

Methods

__construct()

__construct(string  $expression,string|array<mixed,string>  $assignedToGroups = array(),array<mixed,array>  $queryArgs = array())

C'tor.

Parameters

string $expression
string|array<mixed,string> $assignedToGroups
array<mixed,array> $queryArgs

urlMatchesQueryArgumentValidations()

urlMatchesQueryArgumentValidations(string  $url)

Check if a given URL matches our query argument validations.

Parameters

string $url

getExpression()

getExpression()

Getter.

getAssignedToGroups()

getAssignedToGroups(): null|array<mixed,string>

Getter.

Returns

null|array<mixed,string>

getQueryArgs()

getQueryArgs()

Getter.

parseUrlQueryEncodedSafe()

parseUrlQueryEncodedSafe(string  $url,integer  $iteration)

In some cases, a URL could contain `&#038;` instead of `&`. This function returns the query string decoded from an URL whether it is using `&` or `&#038;`.

Parameters

string $url
integer $iteration

As this function is recursively used, we need to pass the iteration so we can e.g. avoid memory leaks when using a $url like https://www.google.com/recaptcha/api.js?hl=en&ver=6.0.2#038;render=explicit. Why? As you can see in the URL, #038; is used without & -> falsy query args, but should be treated as-is.