Files
FreshRSS/app/Models/SystemConfiguration.php
Inverle 5e18e96887 Set limits for regex during search (#8913)
Prevents regex searches from running for too long
2026-06-05 23:12:59 +02:00

50 lines
1.8 KiB
PHP

<?php
declare(strict_types=1);
/**
* @property bool $allow_anonymous
* @property bool $allow_anonymous_refresh
* @property-read bool $allow_referrer
* @property bool $allow_robots
* @property bool $api_enabled
* @property string $archiving
* @property 'form'|'http_auth'|'none' $auth_type
* @property array{enabled:bool,retention:int} $auto_sqlite_export
* @property-read bool $reauth_required
* @property-read int $reauth_time
* @property-read string $auto_update_url
* @property-read array<int,mixed> $curl_options
* @property string $default_user
* @property string $email_validation_token
* @property bool $force_email_validation
* @property-read bool $http_auth_auto_register
* @property-read string $http_auth_auto_register_email_field
* @property string $language
* @property string $closed_registration_message
* @property array<string,int> $limits
* @property-read string $logo_html
* @property-read string $meta_description
* @property-read int $nb_parallel_refresh
* @property-read bool $pubsubhubbub_enabled
* @property-read string $salt
* @property-read bool $simplepie_syslog_enabled
* @property-read bool $suppress_csp_warning
* @property array<string> $trusted_sources
* @property array<string,array<string,mixed>> $extensions
*/
final class FreshRSS_SystemConfiguration extends Minz_Configuration {
/** @throws Minz_FileNotExistException */
public static function init(string $config_filename, ?string $default_filename = null): FreshRSS_SystemConfiguration {
parent::register('system', $config_filename, $default_filename);
try {
$conf = parent::get('system');
ini_set('pcre.backtrack_limit', $conf->limits['regex_backtrack_limit']);
ini_set('pcre.recursion_limit', $conf->limits['regex_recursion_limit']);
return $conf;
} catch (Minz_ConfigurationNamespaceException $ex) {
FreshRSS::killApp($ex->getMessage());
}
}
}