Fix escaping for EnvironmentWriterTrait (#610)

* fix escaping for EnvironmentWriterTrait

* remove alphaNum from app name field

* add test for `'` escaping
This commit is contained in:
Boy132 2024-10-08 23:46:06 +02:00 committed by GitHub
parent a946669dc8
commit e23a4a667a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 2 additions and 2 deletions

View File

@ -92,7 +92,6 @@ class Settings extends Page implements HasForms
TextInput::make('APP_NAME') TextInput::make('APP_NAME')
->label('App Name') ->label('App Name')
->required() ->required()
->alphaNum()
->default(env('APP_NAME', 'Pelican')), ->default(env('APP_NAME', 'Pelican')),
TextInput::make('APP_FAVICON') TextInput::make('APP_FAVICON')
->label('App Favicon') ->label('App Favicon')

View File

@ -14,7 +14,7 @@ trait EnvironmentWriterTrait
public function escapeEnvironmentValue(string $value): string public function escapeEnvironmentValue(string $value): string
{ {
if (!preg_match('/^\"(.*)\"$/', $value) && preg_match('/([^\w.\-+\/])+/', $value)) { if (!preg_match('/^\"(.*)\"$/', $value) && preg_match('/([^\w.\-+\/])+/', $value)) {
return sprintf('"%s"', addslashes($value)); return sprintf('"%s"', addcslashes($value, '\\"'));
} }
return $value; return $value;

View File

@ -23,6 +23,7 @@ class EnvironmentWriterTraitTest extends TestCase
['foo', 'foo'], ['foo', 'foo'],
['abc123', 'abc123'], ['abc123', 'abc123'],
['val"ue', '"val\"ue"'], ['val"ue', '"val\"ue"'],
['val\'ue', '"val\'ue"'],
['my test value', '"my test value"'], ['my test value', '"my test value"'],
['mysql_p@assword', '"mysql_p@assword"'], ['mysql_p@assword', '"mysql_p@assword"'],
['mysql_p#assword', '"mysql_p#assword"'], ['mysql_p#assword', '"mysql_p#assword"'],