diff --git a/src/ArchPresets/Base.php b/src/ArchPresets/Base.php index 68d72937..ad64459a 100644 --- a/src/ArchPresets/Base.php +++ b/src/ArchPresets/Base.php @@ -23,10 +23,27 @@ final class Base extends AbstractPreset 'dump', 'ray', 'die', - 'goto', + 'goto', + 'global', 'var_dump', 'phpinfo', 'echo', + 'ereg', + 'eregi', + 'mysql_connect', + 'mysql_pconnect', + 'mysql_query', + 'mysql_select_db', + 'mysql_fetch_array', + 'mysql_fetch_assoc', + 'mysql_fetch_object', + 'mysql_fetch_row', + 'mysql_num_rows', + 'mysql_affected_rows', + 'mysql_free_result', + 'mysql_insert_id', + 'mysql_error', + 'mysql_real_escape_string', 'print', 'print_r', 'var_export', @@ -71,7 +88,7 @@ final class Base extends AbstractPreset 'xdebug_stop_trace', 'xdebug_time_index', 'xdebug_var_dump', - 'trap', + 'trap', ])->not->toBeUsed(); } } diff --git a/src/ArchPresets/Security.php b/src/ArchPresets/Security.php index 8f756e44..c7142748 100644 --- a/src/ArchPresets/Security.php +++ b/src/ArchPresets/Security.php @@ -23,7 +23,19 @@ final class Security extends AbstractPreset 'tempnam', 'str_shuffle', 'shuffle', - 'array_rand' + 'array_rand', + 'eval', + 'exec', + 'shell_exec', + 'system', + 'passthru', + 'create_function', + 'unserialize', + 'extract', + 'parse_str', + 'mb_parse_str', + 'dl', + 'assert', ])->not->toBeUsed(); } } diff --git a/src/Preset.php b/src/Preset.php index 41ad5d64..cc7c8956 100644 --- a/src/Preset.php +++ b/src/Preset.php @@ -8,8 +8,8 @@ use Pest\Arch\Support\Composer; use Pest\ArchPresets\AbstractPreset; use Pest\ArchPresets\Base; use Pest\ArchPresets\Laravel; -use Pest\ArchPresets\Strict; use Pest\ArchPresets\Security; +use Pest\ArchPresets\Strict; use Pest\PendingCalls\TestCall; use stdClass; diff --git a/tests/Arch.php b/tests/Arch.php index d3af0dbd..7e1d0552 100644 --- a/tests/Arch.php +++ b/tests/Arch.php @@ -4,14 +4,23 @@ use Pest\Expectation; arch()->preset()->base()->ignoring([ Expectation::class, - 'eval', 'debug_backtrace', + 'var_export', + 'xdebug_info', +]); + +arch()->preset()->strict()->ignoring([ 'usleep', ]); -arch()->preset()->strict(); - -arch()->preset()->security(); +arch()->preset()->security()->ignoring([ + 'eval', + 'str_shuffle', + 'exec', + 'unserialize', + 'extract', + 'assert', +]); arch('globals') ->expect(['dd', 'dump', 'ray', 'die', 'var_dump', 'sleep'])