fix(healthcheck): user input is rejected if path contains comma and semicolon (#9223)
This commit is contained in:
commit
9f86b73d65
3 changed files with 4 additions and 4 deletions
|
|
@ -2877,7 +2877,7 @@ private function generate_healthcheck_commands()
|
||||||
$scheme = $this->sanitizeHealthCheckValue($this->application->health_check_scheme, '/^https?$/', 'http');
|
$scheme = $this->sanitizeHealthCheckValue($this->application->health_check_scheme, '/^https?$/', 'http');
|
||||||
$host = $this->sanitizeHealthCheckValue($this->application->health_check_host, '/^[a-zA-Z0-9.\-_]+$/', 'localhost');
|
$host = $this->sanitizeHealthCheckValue($this->application->health_check_host, '/^[a-zA-Z0-9.\-_]+$/', 'localhost');
|
||||||
$path = $this->application->health_check_path
|
$path = $this->application->health_check_path
|
||||||
? $this->sanitizeHealthCheckValue($this->application->health_check_path, '#^[a-zA-Z0-9/\-_.~%]+$#', '/')
|
? $this->sanitizeHealthCheckValue($this->application->health_check_path, '#^[a-zA-Z0-9/\-_.~%,;]+$#', '/')
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
$url = escapeshellarg("{$scheme}://{$host}:{$health_check_port}".($path ?? '/'));
|
$url = escapeshellarg("{$scheme}://{$host}:{$health_check_port}".($path ?? '/'));
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ class HealthChecks extends Component
|
||||||
#[Validate(['nullable', 'integer', 'min:1', 'max:65535'])]
|
#[Validate(['nullable', 'integer', 'min:1', 'max:65535'])]
|
||||||
public ?string $healthCheckPort = null;
|
public ?string $healthCheckPort = null;
|
||||||
|
|
||||||
#[Validate(['required', 'string', 'regex:#^[a-zA-Z0-9/\-_.~%]+$#'])]
|
#[Validate(['required', 'string', 'regex:#^[a-zA-Z0-9/\-_.~%,;]+$#'])]
|
||||||
public string $healthCheckPath;
|
public string $healthCheckPath;
|
||||||
|
|
||||||
#[Validate(['integer'])]
|
#[Validate(['integer'])]
|
||||||
|
|
@ -62,7 +62,7 @@ class HealthChecks extends Component
|
||||||
'healthCheckEnabled' => 'boolean',
|
'healthCheckEnabled' => 'boolean',
|
||||||
'healthCheckType' => 'string|in:http,cmd',
|
'healthCheckType' => 'string|in:http,cmd',
|
||||||
'healthCheckCommand' => ['nullable', 'string', 'max:1000', 'regex:/^[a-zA-Z0-9 \-_.\/:=@,+]+$/'],
|
'healthCheckCommand' => ['nullable', 'string', 'max:1000', 'regex:/^[a-zA-Z0-9 \-_.\/:=@,+]+$/'],
|
||||||
'healthCheckPath' => ['required', 'string', 'regex:#^[a-zA-Z0-9/\-_.~%]+$#'],
|
'healthCheckPath' => ['required', 'string', 'regex:#^[a-zA-Z0-9/\-_.~%,;]+$#'],
|
||||||
'healthCheckPort' => 'nullable|integer|min:1|max:65535',
|
'healthCheckPort' => 'nullable|integer|min:1|max:65535',
|
||||||
'healthCheckHost' => ['required', 'string', 'regex:/^[a-zA-Z0-9.\-_]+$/'],
|
'healthCheckHost' => ['required', 'string', 'regex:/^[a-zA-Z0-9.\-_]+$/'],
|
||||||
'healthCheckMethod' => 'required|string|in:GET,HEAD,POST,OPTIONS',
|
'healthCheckMethod' => 'required|string|in:GET,HEAD,POST,OPTIONS',
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ function sharedDataApplications()
|
||||||
'health_check_enabled' => 'boolean',
|
'health_check_enabled' => 'boolean',
|
||||||
'health_check_type' => 'string|in:http,cmd',
|
'health_check_type' => 'string|in:http,cmd',
|
||||||
'health_check_command' => ['nullable', 'string', 'max:1000', 'regex:/^[a-zA-Z0-9 \-_.\/:=@,+]+$/'],
|
'health_check_command' => ['nullable', 'string', 'max:1000', 'regex:/^[a-zA-Z0-9 \-_.\/:=@,+]+$/'],
|
||||||
'health_check_path' => ['string', 'regex:#^[a-zA-Z0-9/\-_.~%]+$#'],
|
'health_check_path' => ['string', 'regex:#^[a-zA-Z0-9/\-_.~%,;]+$#'],
|
||||||
'health_check_port' => 'integer|nullable|min:1|max:65535',
|
'health_check_port' => 'integer|nullable|min:1|max:65535',
|
||||||
'health_check_host' => ['string', 'regex:/^[a-zA-Z0-9.\-_]+$/'],
|
'health_check_host' => ['string', 'regex:/^[a-zA-Z0-9.\-_]+$/'],
|
||||||
'health_check_method' => 'string|in:GET,HEAD,POST,OPTIONS',
|
'health_check_method' => 'string|in:GET,HEAD,POST,OPTIONS',
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue